题目:
经典循环案例:请求出所有的水仙花数,并统计总共有几个。
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。举例:153就是一个水仙花数,153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 1 + 125 + 27= 153
提示:
你可以选择使用while循环,也可以选择使用for循环,但只需要给出一个解法就足够了。
关键点
分析:
:
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/*
Narcissus /nɑːˈsɪs.əs/水仙花
经典循环案例:请求出所有的水仙花数,并统计总共有几个。
所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
举例:153就是一个水仙花数,153 = 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 = 1 + 125 + 27 = 153
*/
int main(void) {
//记录水仙花的个数
int count = 0;
//遍历100~999,计算各数各位立方和
for (int i = 100;i <= 999;i++) {
int handreds = i / 100;
int tens = i / 10 % 10;
int ones = i % 10;
//计算立方和
int sumOfCubes = handreds * handreds * handreds + tens * tens * tens + ones * ones * ones;
//判断该数是否水仙花数
if (sumOfCubes == i) {
printf("%d是水仙花数.\n", i);
count++;
}
}
printf("100~999之间一共有%d个水仙花数.\n", count);
return 0;
}
解决方案总结:
: