一道C++小程序问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:34:22
要求算出所有这样的数字
比如:153=1^3+5^3+3^3
#include <iostream>
using namespace std;
int main()
{int a,b,c;
a*a*a+b*b*b+c*c*c=100*a+10*b+c;
cout<<a<<b<<c;
return 0;
}

思路是遍历所有三位数,就是从100到999全部检验一遍,代码如下:
#include <iostream>
using namespace std;
int main()
{int a,b,c;
for(int i = 100; i<1000; i++)
{
a = i/100;
b = (i-a*100)/10;
c = i-a*100-b*10;
if(a*a*a+b*b*b+c*c*c==i)
cout<<i;
}
return 0;
}

条件错误,所有的是不可能求出来的,至少要100000000000以下,或99999999以下啊,怎么也要有个上限才对,否则无限运算下去。
你再加个if语句就好了。if(a<1000000000){ if (b<1000000000){if(c<100000000){...计算程序....}b- - ;} a - -;},大概就是这个意思了。

=是赋值运算,,明白了吧,不能这么写

#include <iostream.h>
void main()
{
int a,b,c;
for(int i = 100; i<1000; i++)
{
a = i/100;
b = i%100/10;
c = i%10;
if(a*a*a+b*b*b+c*c*c==i)
cout<<i<<endl;
}
}
结果为:
153
370
371
407