#pragma warning(disable:4996)
#include <stdio.h>
int main() {
//4-1. 水仙花数(20)
int n;
scanf("%d", &n);
int min=1;
int max;
int m = 0;
//循环找出最大值和最小值
for (int i = 1; i <=(n-1); i++)
{
min = min * 10;
}
max = min * 10 - 1;
int sum = 0;//定义水仙花数
int t;
int k;
int p;
for (int i = min; i <= max; i++)
{
k = i;
sum = 0;
while (k)
{
t = k%10;//取出个位
p = 1;
for (int i = 0; i < n; i++)
{
p = p * t;
}
sum += p;
k /= 10;//取出十位
}
if (sum == i)
{
m++;
printf("%d\n ", i);
}
}
printf("%d ", m);
}
中国大学MOOC-翁恺-04-1. 水仙花数(20)
最新推荐文章于 2022-04-01 21:39:03 发布