m=a^3+b^3+c^3 其中a为m的百位数,b为m的十位数,c为m的个位数,
如 m=371 则有 a 为 3 b 为 7 c 为 1
a,b,c如何求?
a为m的百位数: 首先把m的小数点后移两位,用m/100就可以了吧~
b为m的十位数: 如何求十位?利用刚刚求出的百位数a,将m简化为一个十位数m-a*100 比如:371-3*100=71 这样再求这个十位数7就好求了。仍然利用小数点前移然后求整 fix(71/10) 就求出 b=fix(7.1)=7 c为m的个位: 跟求b一样~利用先前求出的a与b,将m的十位,百位都减去就OK啦~~~~ 这样,a与b与c就都有了
如果 m 满足这样的条件 m=a^3+b^3+c^3 则 m为一个水仙花数 输出m 否则 m不是一个水仙花数
程序:
#include void main() { int a,b,c,i; for(i=0;i<=999;i++) { a=i/100; b=i%100/10; c=i%10; if(a*100+b*10+c==a*a*a+b*b*b+c*c*c) printf("%d\\n",i) ; } } 下载本文