C 语言基础教程

C 语言流程控制

C 语言函数

C 语言数组

C 语言指针

C 语言字符串

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C程序检查阿姆斯特朗数

C 语言编程实例大全

在此示例中,您将学习检查用户输入的整数是否是Armstrong数字。

要理解此示例,您应该了解以下C语言编程主题:

如果满足以下条件,则一个正整数称为阿姆斯特朗数(n阶),如果

abcd... = an + bn + cn + dn +

对于3位的阿姆斯特朗数,每个数字的立方数之和等于数字本身。 例如,153是Armstrong的数字,因为

153 = 1*1*1 + 5*5*5 + 3*3*3

检查三位的阿姆斯特朗数

#include <stdio.h>
int main() {
    int num, originalNum, remainder, result = 0;
    printf("输入一个三位数的整数: ");
    scanf("%d", &num);
    originalNum = num;

    while (originalNum != 0) {
       // 余数
        remainder = originalNum % 10;
        
       result += remainder * remainder * remainder;
        
       //从原始数字中去除最后一位数
       originalNum /= 10;
    }

    if (result == num)
        printf("%d 是一个阿姆斯特朗数。", num);
    else
        printf("%d 不是一个阿姆斯特朗数。", num);

    return 0;
}

输出结果

输入一个三位数的整数: 371
371 是一个阿姆斯特朗数。

检查n位的阿姆斯特朗数

#include <math.h>
#include <stdio.h>

int main() {
   int num, originalNum, remainder, n = 0;
   float result = 0.0;

   printf("输入一个整数: ");
   scanf("%d", &num);

   originalNum = num;

   //将num的位数存储在n中
   for (originalNum = num; originalNum != 0; ++n) {
       originalNum /= 10;
   }

   for (originalNum = num; originalNum != 0; originalNum /= 10) {
       remainder = originalNum % 10;

      // 存储结果中每个数字的幂的和
      result += pow(remainder, n);
   }

   // 如果num等于result,则该数字为阿姆斯壮数字
   if ((int)result == num)
    printf("%d 是一个阿姆斯特朗数。", num);
   else
    printf("%d 不是一个阿姆斯特朗数。", num);
   return 0;
}

输出结果

输入一个整数: 1634
1634 是一个阿姆斯特朗数。

在此程序中,首先计算一个整数的位数,并将其存储在n中。 并且,pow()函数用于计算第二个for循环的每次迭代中各个数字的幂。

C 语言编程实例大全