
c语言输入一个2345到4567之间的四位数, 判断换是否是荷花数( 写出荷花数的条件)? 5
展开全部
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。(当n=3时,又称水仙花数,特指一种三位数,其各个数之立方和等于该数。)
#include<stdio.h>
int main()
{
int i,t,k,a[4];
printf("There are follwing armstrong number smaller between 2345 to 4567:\n");
for(i=2345;i<4567;i++) /*穷举要判定的数i的取值范围2345~4567*/
{
for(t=0,k=10000;k>=10;t++) /*截取整数i的各位(从高向低位)*/
{
a[t]=(i%k)/(k/10); /*分别赋于a[0]~a[3]*/
k=k/10;
}
if(a[0]*a[0]*a[0]*a[0]+a[1]*a[1]*a[1]*a[1]+a[2]*a[2]*a[2]*a[2]+a[3]*a[3]*a[3]*a[3]==i)/*判断i是否为阿姆斯特朗数*/
printf("%5d",i); /*若满足条件,则输出*/
}
return 0;
}
#include<stdio.h>
int main()
{
int i,t,k,a[4];
printf("There are follwing armstrong number smaller between 2345 to 4567:\n");
for(i=2345;i<4567;i++) /*穷举要判定的数i的取值范围2345~4567*/
{
for(t=0,k=10000;k>=10;t++) /*截取整数i的各位(从高向低位)*/
{
a[t]=(i%k)/(k/10); /*分别赋于a[0]~a[3]*/
k=k/10;
}
if(a[0]*a[0]*a[0]*a[0]+a[1]*a[1]*a[1]*a[1]+a[2]*a[2]*a[2]*a[2]+a[3]*a[3]*a[3]*a[3]==i)/*判断i是否为阿姆斯特朗数*/
printf("%5d",i); /*若满足条件,则输出*/
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询