#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int arr[6] = {0};//存放i的各位
for (int i = 0; i <= 100000; i++)
{
int trr[6] = { 1,1,1,1,1,1 };//以后存放每项n次方的值
int n = 1;//i的位数
arr[0] = i % 10;//个位
arr[1] = i / 10 % 10;//十位
arr[2] = i / 100 % 10;//百位
arr[3] = i / 1000 % 10;//千位
arr[4] = i / 10000 % 10;//万位
arr[5] = i / 100000 % 10;//十万位
for (int j = 5; j >=0; j--)//通过此循环 求出i的位数
{
if (arr[j] != 0)
{
n = j + 1;
break;
}
}
for (int q = 0; q < n; q++)//通过此循环求出trr数组 trr数组每个元素中都存放这i各位的n次方
{
for (int m = 0; m < n; m++)
{
trr[q] *= arr[q];
}
}
int p = 0;
for (int w = 0; w < n; w++)//实现各位n次方求和 值赋给p
{
p += trr[w];
}
if (p == i)//如果p也就是各项的n次方之和等于i就是它本身,则这个数为水仙花数,输出
{
printf("%d\n", i);
}
}
return 0;
}
打印0~100000的水仙花数
最新推荐文章于 2024-09-15 18:27:07 发布