#include <iostream>
#include <stdio.h>
/*
(2008)打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
*/
using namespace std;
//基本思路是一位一位的拿出来算
int isPerfectNumber(int num)
{
if(num<100||num>1000){
printf("请输入一个三位数数:\n");
return 0;
}
int temp = num;//因为最后要用到num比较,所以num原值不能变
int digit = 0 ;//存放每次拿出来的一位数
int sum = 0;//保存和
while(temp){
digit = temp %10;
sum += digit*digit*digit;
temp /=10;
}
if (sum == num){
return 1;
}
else{
return 0;
}
}
int main()
{
printf("水仙花数有:\n");
for(int i =100;i<1000;++i){
if (isPerfectNumber(i)){
printf("%d\n",i);
}
}
return 0;
}
打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
最新推荐文章于 2021-06-30 17:47:05 发布