PTA 7-186 水仙花数
“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。本题要求输出所有的水仙花数。
输入格式:
无
输出格式:
请在一行中输出所有的水仙花数。
输入样例:
在这里给出一组输入。例如:
无
输出样例:
在这里给出相应的输出。例如:
153 370 371 407
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include <stdio.h>
#include <math.h>
int main(){
int unit, decade, hunder; //个, 十, 百
int cubic_sum; //各位数字的立方和
for(int i = 100; i < 1000; i++){
unit = i % 10; //个位
decade = i / 10 % 10; //十位
hunder = i / 100; //百位
cubic_sum = pow(unit, 3) + pow(decade, 3) + pow(hunder, 3); //各位数字的立方和
if(cubic_sum == i){ //若各位数字的立方和等于该数本身
printf("%d ", i);
}
}
return 0;
}
解题思路:
step1:取出个,十,百位
step2:算出各位数字的立方和
step3:判断是否满足水仙花数的条件
归属知识点:
条件判断
循环结构