作业帮 > 综合 > 作业

如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数.如:407=43+03+73 就是一个

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/15 23:09:59
如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数.如:407=43+03+73 就是一个
C语言编程
如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数.如:407=43+03+73 就是一个
楼主应该加个条件正整数是三位,这样才能和后面的立方和对应起来.阿姆斯特朗数的定义为:一个n位正整数等于其各位数字的n次方之和.
三位数的情况也叫水仙花数.
程序如下:
#include
  int main()
  {
  int i,t,k,a[3];
  printf("There are follwing armstrong number smaller than 1000:\n");
  for(i=2;i=10;t++) /*截取整数i的各位(从高向低位)*/
  {
  a[t]=(i%k)/(k/10); /*分别赋于a[0]~a[2}*/
  k/=10;
  if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)
  /*判断i是否为阿姆斯特朗数*/
  printf("%5d",i); /*若满足条件,则输出*/
  }
  printf("\n");
  }
  *运行结果
  There are following armstrong number smaller than 1000:
  153 370 371 407