#include <math.h>
#include <stdio.h>
int main()
{
int n;
do
{
scanf("%d", &n);
} while (n > 7 || n < 3);
int N = 1;
for (int i = 1; i < n; i++)
N *= 10;
for (int i = N; i < N * 10 - 1; i++)
{
int sum = 0, t, x = i;
while (x)
{
t = x % 10;
sum += pow(t,n);
x /= 10;
}
if (i == sum)
printf("%d\n", i);
}
return 0;
}
#include<stdio.h>
#include<ctype.h>
#include<math.h>
#include<stdlib.h>
#include<conio.h>
#pragma warning(disable:4996)
#define MAX 1000
int main(void)
{
int n;
int count = 0;
while (!scanf_s("%d", &n) || n < 3 || n>7)
{
while (getchar() != '\n');
printf("请输入一个整数n(3<=n<=7)\n");
}
for (int i = 1; i < MAX; i++)
{
int tmp = i;
int num = 0;
while (tmp != 0)
{
num += pow(tmp % 10, n);
tmp /= 10;
}
if (num == i)
{
printf("%d\t", i);
count++;
if (count % 5 == 0)
putchar('\n');
}
}
printf("\n%d共有%d个水仙花\n", MAX, count);
return 0;
}
本人新手一枚,凑合看看啦,Hi~ o( ̄▽ ̄)ブ