我们先来看一下这个程序的题目:
水仙花数是指一个N位的正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1^3+5^3+3^3.本题要求编写程序,计算所有的N位水仙花数,我们来看一下代码:
#include<stdio.h>
int main()
{
int n;
scanf_s("%d", &n);
int first = 1;
int i = 1;
while (i < n)
{
first *= 10;
i++;
}
//printf("first=%dn", first);判断前面写的i<n的这个终止条件是否正确。
//在这里我们需要便利它输入的那个位数的所有数字。
i = first;
while (i < first * 10)
{
int t=i;//用来记录这个i。
int sum = 0;//用来记录每一次的结果的n次幂的加和。
do
{
int d = t % 10;
t /= 10;
//这块在来用一个循环来进行几次幂的计算。
int p = 1;//负责计算每一次的几次幂为多少。
int j = 0;//用来计算算了多少次幂。
while (j < n)
{
p *= d;//每一次的幂次的计算。
j++;
}
sum += p;
} while (t > 0);
if (sum ==i)
{
printf("%dn", i);
}
i++;
}
return 0;
}
相关知识
C语言:输出所有的水仙花数
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
C语言编写水仙花数
水仙花数C语言代码优化
水仙花数,C语言
【C语言】求水仙花数(完整代码)
C语言判断水仙花数
判断一个数是否为水仙花数 (C语言)
C语言3位~7位水仙花数(加强版)
C语言入门:判断水仙花数(100~999)
网址: C语言重来29:例题赏析——水仙花数 https://m.huajiangbk.com/newsview391215.html
上一篇: c语言学习 |
下一篇: 蓝桥杯练习【数论基础】——水仙花 |