一.什么是水仙花数
水仙花数是指一个n位数的数字,它的每一位数乘以n次方,再把各个积相加,如果加起来后的和等于这个数字本身,那么这个数称为水仙花数,例如:153=1^3+5^3+3^3,证明153是水仙花数
二.设计思路
设置循环,对从0~100000的数字进行计算,验证是否是水仙花数
三.代码
点赞、收藏、评论、关注博主,推出更多C语言博客(*^▽^*)
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<math.h>
int RET(int num); //计算位数
int COMPUTE(int num,int ret); //计算每一位乘以n次方
int main()
{
int num = 0;//0~100000之间的数
int ret = 0;//位数
int total = 0;//各位数n次方的总和
printf("0~100000之间的水仙花数有:\n");
for (num = 0; num <= 100000; num++)
{
ret = RET(num);//位数
total = COMPUTE(num,ret);//计算各位数n次方之和
if (total == num)//是水仙花数
{
printf("%d ", total);
}
}
return 0;
}
//计算位数
int RET(int num)
{
int n = 0;
while (num)
{
num = num / 10;
n++;
}
return n;
}
//计算各位数n次方之和
int COMPUTE(int num,int ret)
{
int a = 0;
while (num)
{
a += (int)pow((num % 10), ret);
num = num / 10;
}
return a;
}
点赞、收藏、评论、关注博主,推出更多C语言博客(*^▽^*)