水仙花数pta
时间: 2023-09-08 15:11:13 浏览: 161
水仙花数是指一个 n 位正整数 (n≥3),它的每个位上的数字的 n 次幂之和等于它本身。例如:$371=3^3+7^3+1^3$。如果你想在 PTA 上做水仙花数的题目,可以参考以下 C 语言代码:
```c
#include <stdio.h>
#include <math.h>
int main()
{
int m, n, i;
scanf("%d %d", &m, &n);
int flag = 0; // 用于判断是否找到水仙花数
for(i = m; i <= n; i++)
{
int sum = 0; // 用于存储每个数字的 n 次方和
int temp = i;
int k = 0;
while(temp)
{
k++;
temp /= 10;
}
temp = i;
while(temp)
{
int digit = temp % 10; // 取出每一位数字
sum += pow(digit, k); // 计算 n 次方和
temp /= 10;
}
if(sum == i) // 如果是水仙花数,输出
{
printf("%d ", i);
flag = 1;
}
}
if(flag == 0) // 如果没有找到水仙花数,输出无
printf("no");
return 0;
}
```
这个程序可以根据用户输入的 m 和 n 的范围,输出 m 到 n 中的所有水仙花数。
阅读全文