阿姆斯特朗数的 C 程序

cserver side programmingprogramming

我们被赋予一项任务,我们必须检查用户输入的数字 n,无论它是否是阿姆斯特朗数。

阿姆斯特朗数是所有数字之和的位数幂,或者我们可以说数字顺序 n,与数字相同。

因此,下面是如何找到阿姆斯特朗数 − 的简单表示

公式 −

wxyz…. = pow(w, n) +pow(x, n) + pow(y, n) + pow(z, n) + …..

算法

START
步骤 1-> 声明一个函数来查找数字幂运算后的值
   int power(int a, int b)
      循环 while b>0
         分配 power =power * a
         将 b 减 1
      结束循环
      返回 power
结束
步骤 2-> 声明一个函数来计算数字的顺序
   int count(int n)
      声明并将 i 设置为 0
      循环 while n!=0
         将 i 加 1
         将 n/10 除并存回 n
      结束循环
   返回 i
结束
步骤 3-> 声明一个函数来检查数字是否为素数
   int armstrong(int n)
      声明 x 并调用函数 count(n) 并将结果赋给 x
      声明 rem = 0 且 m=0 设置为零
      循环 While n
         设置 rem = n %10
         设置 m = m + power(rem, x)
         将 n 设置为 n/10
      结束循环
   返回 m;
结束
步骤 4-> 声明 main
   int main(int argc, char const *argv[])
      声明并设置 n = 1634
      调用函数 Armstrong 并检查值是否相等
         打印"它是 armstrong 数字
      End if
      Else
           打印数字不是阿姆斯特朗数
   结束
停止

示例

#include <stdio.h>
int power(int a, int b){
   int power =1;
   while(b>0){
      power *= a;
      b--;
   }
   return power;
}
int count(int n){
   int i=0;
   while(n!=0){
      i++;
      n = n/10;
   }
   return i;
}
int armstrong(int n){
   int x = count(n);
   int rem = 0, m=0;
   while(n){
      rem = n %10;
      m += power(rem, x);
      n /= 10;
   }
   return m;
}
int main(int argc, char const *argv[]){
   int n = 1634;
   if(n == armstrong(n)){
      printf("%d 是阿姆斯特朗数 
",n);    }    else       printf("%d 不是阿姆斯特朗数
",n);    return 0; }

输出

1634 是阿姆斯特朗数

相关文章