📜  阿姆斯特朗编号的C C++程序(1)

📅  最后修改于: 2023-12-03 14:58:39.349000             🧑  作者: Mango

阿姆斯特朗编号的C/C++程序介绍

阿姆斯特朗数是指一个n位数字的各位数字的n次方之和等于它本身的数,例如:

153 = 1^3 + 5^3 + 3^3

程序员可以使用C/C++编程语言编写程序来验证一个数是否为阿姆斯特朗数。以下是一个简单的C程序示例:

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

int main() {
    int num, originalNum, remainder, result = 0, n = 0;
    printf("请输入一个正整数:");
    scanf("%d", &num);

    originalNum = num;

    // 计算数字的位数
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // 计算每个数字的n次方并相加
    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += pow(remainder, n);
        originalNum /= 10;
    }

    // 判断结果是否等于原始数字
    if (result == num)
        printf("%d 是阿姆斯特朗数。", num);
    else
        printf("%d 不是阿姆斯特朗数。", num);
    
    return 0;
}

以上程序中,我们首先要求用户输入一个数。接着,我们计算出该数字的位数,然后计算出各位数字的n次方之和,并判断其是否等于原始数字。最后,程序输出结果。

需要注意的是,我们使用了 pow() 函数来计算每一位数字的n次方。该函数是由math.h头文件控制的,返回x的y次幂的值。

以上是C语言的示例。下面是一个相对简单的C++实现:

#include <iostream>
#include <cmath>

int main() {
    int num, originalNum, remainder, result = 0, n = 0;
    std::cout << "请输入一个正整数:";
    std::cin >> num;

    originalNum = num;

    // 计算数字的位数
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // 计算每个数字的n次方并相加
    while (originalNum != 0) {
        remainder = originalNum % 10;
        result += std::pow(remainder, n);
        originalNum /= 10;
    }

    // 判断结果是否等于原始数字
    if (result == num)
        std::cout << num << " 是阿姆斯特朗数。";
    else
        std::cout << num << " 不是阿姆斯特朗数。";
    
    return 0;
}

此C++程序实现了与C程序相同的功能,但是使用了不同的输入和输出语句。

以上就是一个简单的阿姆斯特朗编号的C/C++程序介绍。此程序可以用来验证一个数是否为阿姆斯特朗数。