2020-11-15 上机实践——阿姆斯特朗数

1、问题及代码

/*
*Copyright (c)2020,CSDN学院
*All rights reserved.
*文件名称:main.c
*作    者:李先声
*完成日期:2020年11月15日
*版 本 号:v1.0
*问题描述:【项目5-阿姆斯特朗数】
如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。
试编程求1000以内的所有阿姆斯特朗数。
*/
#include <stdio.h>

int main( )
{
    int n,a,b,c,x;

    for(n=1;n<1000;n++)
    {
        a=n/100;//百位数

        b=(n%100)/10;//十位数

        c=(n%100)%10;//个位数

        x=a*a*a+b*b*b+c*c*c;

        if(n==x)
        {
            printf("%d\n",n);
        }
    }

    return 0;

}

 2、计算结果

 

3、老师提供的答案更好

#include <stdio.h>
int main()
{
    int i,m,k,n;
    for(n=1; n<=1000; ++n)
    {
        //计算n的各位数的立方和m
        k=n;
        m=0;
        while(k>0)
        {
            i=k%10;
            m+=i*i*i;
            k=k/10;
        }
        if(m==n)  //n和其各位数的立方和相等
        {
            printf("%d\t", m);
        }
    }
    printf("\n");
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值