PS:实验室布置的任务罢了。
题目:打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。
首先这个题的思路就是将153分为百位,十位,个位。
百位的三次方+十位的三次方+个位的三次方即为所得值。
然后就是如何将三位分离,这里我用的是取模。
例如个位:153%10得到的就是3
十位只需153/10%10就能得到5
百位153/10/10%10得到1
使用if语句在for循环中嵌套,然后判断输出即可,是不是很简单呢?
#include <stdio.h>
int main() {
int i, x, y, z;
for (i = 100; i < 1000; i++) {
x = (i % 10) * (i % 10) * (i % 10);
y = ((i / 10) % 10) * ((i / 10) % 10) * ((i / 10) % 10);
z = ((i / 100) % 10) * ((i / 100) % 10) * ((i / 100) % 10);
if (i == x + y + z)
printf("%d\n", i);
}
}