佬们救救...

P1618 三连击(升级版)

Simon3_14 @ 2023-10-26 21:39:06

普通版的我是这么写的能过,这里却wa一个,re一个。。。为什么嘞,好像很多记录这样(汗

#include <iostream>
using namespace std;
int main()
{
    double a, b, c, d, e, f, g, h, i;
    int x, y, z, flag = 0;
    cin >> x >> y >> z;
    for (int k = 123; k <= 999;k++)
    //k到三百多就够
    {
        a = k % 10;
        b = k / 10 % 10;
        c = k / 100;
        //第一个数三位数字
        d = y * k % 10 / x;
        e = y * k / 10 % 10 / x;
        f = y * k / 100 / x;
        //第二个数三位数字
        g = z * k % 10 / x;
        h = z * k / 10 % 10 / x;
        i = z * k / 100 / x;
        //第三个数三位数字
        if (a + b + c + d + e + f + g + h + i == 45 && a * b * c * d * e * f * g * h * i == 362880)
        {
            cout << c << b << a << " " << f << e << d << " " << i << h << g << endl;
            flag = 1;
        }
    }
    if(flag==0)
        cout << "No!!!";
    return 0;
}

by jqQt0220 @ 2023-10-26 21:41:35

x 可能为 0


by Simon3_14 @ 2023-10-26 22:00:22

@jqQt0220 哦!谢谢,原来还有这种情况! 另外我还发现由于x位置不对,输入等比例扩大的数也会输出No


by Simon3_14 @ 2023-10-26 23:52:56

@jqQt0220 烷氮,好不容易搞完等比例,突然发现378,456根本无法判断,还得大改。。。


|