使用 C 检查数字是否为阿姆斯特朗数

cserver side programmingprogramming

问题

如何使用 C 编程语言检查给定数字是否为阿姆斯特朗数?

解决方案

阿姆斯特朗数是等于其数字立方和的数字。

语法

pqrs………=pow(p,n)+pow(q,n)+pow(r,n)+………。

例如,153,371,1634 等都是阿姆斯特朗数。

153=1*1*1 + 5*5*5 + 3*3*3
   =1+125+27
   =153 (Armstrong number)

程序

#include<stdio.h>
int main(){
   int number,remainder,total=0,temp;
   printf("输入数字=");
   scanf("%d",&number);
   temp=number;
   while(number>0){
      remainder=number%10;
      total=total+(remainder*remainder*remainder);
      number=number/10;
   }
   if(temp==total)
      printf("这个数字是阿姆斯特朗数");
   else
      printf("这个数字不是阿姆斯特朗数");
   return 0;
}

输出

输入数字=371
这个数字是阿姆斯特朗数
检查:371=3*3*3 +7*7*7 + 1*1*1
           =27 + 343 +1
           =371
输入数字=53
此数字不是阿姆斯特朗数字

解释

53 = 5*5*5 + 3*3*3
   =125 +27
   = 152 != 53

相关文章