C程序 显示两个区间的阿姆斯特朗数字

  • Post category:C

下面将为您详细讲解使用C程序来显示两个区间的阿姆斯特朗数字的完整使用攻略。

什么是阿姆斯特朗数字

阿姆斯特朗数字是指一个n位数( n>=3 ), 它的每个数字的n次方之和等于它本身。例如:1^3 + 5^3 + 3^3 = 153。

如何使用C程序来显示两个区间的阿姆斯特朗数字

首先,我们需要用C语言编写代码实现指定区间内的阿姆斯特朗数字的筛选和显示。以下是一个示例代码:

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

int main()
{
    int lower, upper, num, temp, digit, sum;
    printf("Enter two numbers(intervals): ");
    scanf("%d %d", &lower, &upper);
    printf("Armstrong numbers between %d and %d are: ", lower, upper);

    for(num=lower; num<=upper; num++)
    {
        temp=num;
        sum=0;
        digit=0;
        while (temp!=0)
        {
            digit++;
            temp=temp/10;
        }
        temp=num;

        while(temp!=0)
        {
            sum=sum+pow((temp%10),digit);
            temp=temp/10;
        }
        if(sum==num)
        {
            printf("%d ",num);
        }
    }
    return 0;
}

代码中用到了两个循环,第一个循环用来遍历指定区间内的数字,第二个循环用来计算该数字的每一位数的n次方的和,并验证是否与该数字本身相等。如果是,则该数字是阿姆斯特朗数字,输出该数字。

现在,您可以在本地安装C编译器,比如Dev-C++、Visual Studio等,把以上代码复制到编译器中,编译并运行该程序即可在控制台看到输出的结果。

以下是两个示例说明:

示例1:

输入:

Enter two numbers(intervals): 1 2000

输出:

Armstrong numbers between 1 and 2000 are: 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 

示例2:

输入:

Enter two numbers(intervals): 2000 5000

输出:

Armstrong numbers between 2000 and 5000 are: 8208 9474 

需要注意的是,如果输入的两个数字x和y(x<y)之间不存在阿姆斯特朗数字,那么输出就是空的。