各位高手,这道题的要求是从1到999,找出例如这样的数:370=3×3×3+7×7×7+0×0×0,答案如下:1,153,370,371,407
我编的程序如下,它只找到了1和407两个数,我又没找到错误,请高手们指教:
#include<stdio.h> void main() { int a,d,e,f,g,i; for(a=1;a<=999;a++) { d=a/10; e=a%10; f=d/10; g=d%10; i=e*e*e+g*g*g+f*f*f; if(i==a) printf("%d\n",i); } }
原因已经找到,我机器中了蠕虫病毒了,算法不正常,劳烦各位了。:)
/是除法,%是求余。
[此贴子已经被作者于2004-12-05 09:57:22编辑过]
----------------解决方案--------------------------------------------------------
d=a/10; e=a%100; f=d/10; g=d%10;
搞清楚 /,%是什么意思
----------------解决方案--------------------------------------------------------
啊,这样都行啊,楼主,你的问题好搞笑哦
----------------解决方案--------------------------------------------------------
算法是不是不正确
----------------解决方案--------------------------------------------------------
楼主的程序确实已经可以运行了
----------------解决方案--------------------------------------------------------
#include <iostream.h>
void main(void)
{
int num;
int a;
int b;
int c;
for(num=1;num<=999;num++)
{
a=num/100;
b=(num-a*100)/10;
c=num-a*100-b*10;
if(a*a*a+b*b*b+c*c*c==num)
{
cout<<a<<b<<c<<endl;
}
}
return;
}
这样似乎清楚一点
----------------解决方案--------------------------------------------------------
#include "stdio.h" void main() { int e,f,g,i; for(i=1;i<=999;i++) { e=i/100; f=i%100/10; g=i%100%10; if(i==e*e*e+f*f*f+g*g*g) printf("%d\n",a); } printf("end"); getch(); }
[此贴子已经被作者于2004-12-08 12:07:53编辑过]
----------------解决方案--------------------------------------------------------