算法描述:
水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身。例如:152 = 1^3+5^3+3^3。本题要求编写程序,计算所有N位水仙花数。
输入格式:输入在一行中给出一个正整数N(3<=N<=7)。
输出格式:按递增顺序给出所有N位水仙花数,每个数字占一行。
输入样例:
3
输出样例:
153
370
371
407
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
int x = pow(10,n);
int y = pow(10,n-1);
while(y<x){
int t = y;
int sum = 0;
while(t>0){
int a = t%10;
sum = pow(a,n) + sum;
t = t/10;
}
if(sum==y){
printf("%dn",sum);
}
y++;
}
return 0;
}
代码说明:
以3位数为例
1.例如输入n=3,表示需要查找所有3位水仙花数
2.需要遍历所有的三位数,即 100-999之间的数
3.求出每次遍历,该数各个位上的数字,即分解成该数的个位、十位、百位等,这是编程的关键。
如:153,通过153%10取模运算,得到3,第二次用53%10,得3,第3次用5%10得5.
4.求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数
代码演示:
相关知识
C语言:输出所有的水仙花数
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
C语言编写水仙花数
【C语言】求水仙花数(完整代码)
C语言:PAT练习:水仙花数( T & F)
1028: 判断水仙花数(C语言)
水仙花数C语言代码优化
水仙花数,C语言
C语言判断水仙花数
水仙花数的实现(python)
网址: C语言实现水仙花数 https://m.huajiangbk.com/newsview467262.html
上一篇: CCF NOI1008. 水仙花 |
下一篇: c语言输出水仙花数 |