C语言教程
C语言控制语句
C语言函数
C语言数组
C语言指针
C语言字符串
C语言数学函数
C语言结构
C语言文件处理
C预处理器

C 检查阿姆斯壮数的程序

检查阿姆斯壮数的 C 程序

在本例中,您将学习检查用户输入的整数是否为阿姆斯特朗数。
要理解此示例,您应该了解以下C 编程 主题:
C if...else 语句 C while 和 do...while 循环
一个正整数称为阿姆斯特朗数( n 阶)如果
abcd... = an + bn + cn + dn + 
对于 3 位数的阿姆斯特朗数,每位数的立方和等于该数本身。例如,153 是一个阿姆斯特朗数,因为
153 = 1*1*1 + 5*5*5 + 3*3*3 

检查阿姆斯壮的三位数字

#include <stdio.h>
int main() {
    int num, originalNum, remainder, result = 0;
    printf("Enter a three-digit integer: ");
    scanf("%d", &num);
    originalNum = num;
    while (originalNum != 0) {
       // remainder contains the last digit
        remainder = originalNum % 10;
        
       result += remainder * remainder * remainder;
        
       // removing last digit from the orignal number
       originalNum /= 10;
    }
    if (result == num)
        printf("%d is an Armstrong number.", num);
    else
        printf("%d is not an Armstrong number.", num);
    return 0;
}
输出
Enter a three-digit integer: 371
371 is an Armstrong number.

检查阿姆斯壮的 n 位数

#include <math.h>
#include <stdio.h>
int main() {
   int num, originalNum, remainder, n = 0;
   float result = 0.0;
   printf("Enter an integer: ");
   scanf("%d", &num);
   originalNum = num;
   // store the number of digits of num in n
   for (originalNum = num; originalNum != 0; ++n) {
       originalNum /= 10;
   }
   for (originalNum = num; originalNum != 0; originalNum /= 10) {
       remainder = originalNum % 10;
      // store the sum of the power of individual digits in result
      result += pow(remainder, n);
   }
   // if num is equal to result, the number is an Armstrong number
   if ((int)result == num)
    printf("%d is an Armstrong number.", num);
   else
    printf("%d is not an Armstrong number.", num);
   return 0;
}
输出
Enter an integer: 1634
1634 is an Armstrong number.
在这个程序中,首先计算一个整数的位数并存储在 n中。而且, pow() 函数用于计算第二个 for 循环的每次迭代中各个数字的幂。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4