我过早的写了x=a/100;
y=a/10%10;
z=a%10;
此时a还没有范围
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int i,h,t,n;
i=100;
while(i>=100&&i<999)
{
h=i/100;\\用输入的数除以100得到百位上的值
t=i/10-h*10;\\用输入的值数楚以10然后再减去求出的百位上的数乘上10后的值
n=i-h*100-t*10;\\用输入的值减去百位乘上100和十位乘上10后的值
if(i==h*h*h+t*t*t+n*n*n)
printf("%d\n",i);
i++;
}
}
我做的while语句的算法 (绝对原创)
[此贴子已经被作者于2006-4-11 17:14:40编辑过]
----------------解决方案--------------------------------------------------------
用while做:
main()
{
int i,j,k,n=100;
while(n<1000)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d\n",n);
n++;
}
}
或者:
main()
{
int i,j,k,n=100;
do
{
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
printf("%4d\n",n);
n++;
}
while(n<1000);
}
没有必要做强制类型转换,正整数相除,应该会简单的舍掉小数部分,
----------------解决方案--------------------------------------------------------
算法上不难嘛!一个核心的思想就是求出每一位数.
----------------解决方案--------------------------------------------------------
也有好多都是我们学校的作业题,是不是考材有很多重复的地方?
----------------解决方案--------------------------------------------------------