1064: 组成三位数

思路分析:首先三个数字由1~9构成,相加为45,相乘为362880

数字最小为123,最大数字为987,所以遍历的数值范围为123~329

我们通过for循环暴力破解 P1064 - 组成三位数 - BTTCOJ

附上代码:仅供参考

#include<bits/stdc++.h>
using namespace std;

bool ok(int x,int y,int z)
{
    if(x%10+x/10%10+x/100+y%10+y/10%10+y/100+z%10+z/10%10+z/100==45)
        if((x%10)*(x/10%10)*(x/100)*(y%10)*(y/10%10)*(y/100)*(z%10)*(z/10%10)*(z/100)==362880)
        return true;
    return false;
}

int main()
{
    for(int i=123;i<=329;i++)
    {
        int a=i,b=2*i,c=3*i;
        if(ok(a,b,c))

cout<<a<<" "<<b<<" "<<c<<endl;
    }
    return 0;
}

上一篇:人该怎样活着呢?45


下一篇:FastAPI(45)- JSONResponse