打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身,例如:153 = 1*1*1 + 5*5*5 + 3*3*3。
因为是三位数,因此我们可以想到,从100开始进行循环,然后将三位数的个位,十位,百位分解开来,然后进行各个位数的立方和看是否和原来的数是否相等,相等,则打印出来。代码如下:
#include <stdio.h>
int main(int argc,int *argv[]) { int n0,n1,n2; int i =100; do { n0 = i % 10; n1 = i % 100 / 10; n2 = i / 100; if (i == n0 * n0 * n0 + n1 * n1 * n1 + n2 * n2 * n2) { printf("%d = %d*%d*%d + %d*%d*%d + %d*%d*%d \n",i,n2,n2,n2,n1,n1,n1,n0,n0,n0); } i++; }while (i < 1000); system("pause"); return 0; }
|
经过程序运算,结果是水仙数的有:153,370,371,407。
阅读(1462) | 评论(0) | 转发(0) |