c#发展

注册

 

发新话题 回复该主题

c语言求水仙花数的算法 [复制链接]

1#

水仙花数是指一个n位数,它的每个位上的数字的n次幂之和等于它本身。例如:是一个水仙花数,因为1^3+5^3+3^3=。

以下是用C语言求水仙花数的算法:

首先,确定要查找的水仙花数的位数,例如3位、4位等。

然后,使用循环遍历所有可能的数字组合。

对于每个数字组合,计算每个位上的数字的n次幂之和。

如果这个和等于原始数字,那么这个数字就是水仙花数。

以下是C语言代码实现:

#includestdio.h

#includemath.h

intmain(){

intn,i,temp,sum,digit;

printf("请输入要查找的水仙花数的位数:");

scanf("%d",n);

for(i=pow(10,n-1);ipow(10,n);i++){

temp=i;

sum=0;

while(temp!=0){

digit=temp%10;

sum+=pow(digit,n);

temp/=10;

}

if(sum==i){

printf("%d是%d位水仙花数",i,n);

}

}

return0;

}

运行这段代码,输入要查找的水仙花数的位数,程序会输出所有满足条件的水仙花数。

分享 转发
TOP
发新话题 回复该主题