c语言学习:求水仙花数

作者:追风筝的人 | 创建时间: 2023-04-18
在学习c语言中,怎么求水仙花数,下面一起来看看吧。...
c语言学习:求水仙花数

操作方法

水仙花数是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数。

方法一 #include <stdio.h> #include <math.h> int main() { int i,m,sum; for(i=100;i<1000;i++) { sum=0; m=i; do { sum=sum+pow(m%10,3);//pow(a,b)是指a的b次幂是double型的 m=m/10; } while(m!=0); if(sum==i) printf("%d ",i); } printf("\n"); return 0; } 运行结果: 153 370 371 407 Press any key to continue

方法二 #include <stdio.h> int main() { int i,j,k,n; printf("水仙花数:",n); for(n=100;n<1000;n++) { i=n/100; j=(n-i*100)/10; k=n-i*100-j*10; if(n==i*i*i+j*j*j+k*k*k) printf("%d\n ",n); } return 0; } 结果: 水仙花数:153 370 371 407

方法三 #include <stdio.h> int main() { int i,j,k,n; printf("水仙花数:",n); for(n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d\n ",n); } return 0; } 输出结果: 水仙花数:153 370 371 407

点击展开全文

更多推荐