水仙花数是指一个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;
}
运行这段代码,输入要查找的水仙花数的位数,程序会输出所有满足条件的水仙花数。