各个位数的立方数之和等于数本身的数,称为水仙花数。
这里使用穷举法打印3位数的水仙花数。
程序的关键是如何取出给定数的各个位的值。
另外需要注意的一点是,求和变量的初值是零。乘积变量的初值则为1。
程序如下:
/* 打印三位数的水仙花数及其个数 */ #include <stdio.h> int main(void) { int sum=0, d1, d2, d3, i; for(i=100; i<= 999; i++) { d1 = i / 100; d2 = i % 100 /10; d3 = i % 10; if(d1 * d1 * d1 + d2 * d2 * d2 + d3 * d3 * d3 == i) { printf("%d ", i); sum++; } } printf("sum=%d ", sum); return 0; }运行结果:
153
370
371
407
sum=4