咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 610|回复: 0

[python] C++和python实现阿姆斯特朗数字查找实例代码

[复制链接]
  • TA的每日心情
    无聊
    2019-6-2 14:11
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    发表于 2020-12-19 12:29:29 | 显示全部楼层 |阅读模式
    1.题目解释

    如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153
    1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407
    2.判断一个数是否为阿姆斯特朗数

    1.先来一个简单的代码,判断一个数是否为阿姆斯特朗数
    来看看C++写的
    1. #include <iostream>
    2. using namespace std;
    3. int main()
    4. {
    5.         int n, r, sum=0, temp;
    6.         cout<<"Enter the Number= ";
    7.         cin>>n;
    8.         temp=n;
    9.         while(n>0)
    10.         {
    11.                 r=n%10;
    12.                 sum=sum+(r*r*r);
    13.                 n=n/10;
    14.         }
    15.         if(temp==sum)
    16.                 cout<<"Armstrong Number."<<endl;
    17.         else
    18.                 cout<<"Not Armstrong Number."<<endl;
    19.         return 0;
    20. }
    复制代码
    运行结果:
    C++和python实现阿姆斯特朗数字查找实例代码-1.png

    接下来看看Python
    1. num = int(input("请输入一个数字:"))
    2. sum= 0
    3. n = len(str(num))
    4. temp = num
    5. while temp >0:
    6. digit = temp %10 # 获取个位数字
    7. sum += digit**n # 对计算结果进行累加
    8. temp //= 10
    9. if num == sum :
    10. print("太棒了!",num,"是阿姆斯特朗数")
    11. else:
    12. print("很遗憾!",num,"不是阿姆斯特朗数")
    复制代码
    运行结果:
    C++和python实现阿姆斯特朗数字查找实例代码-2.png

    2.写一个查找固定范围内的阿姆斯特朗数

    python实现:
    1. lower = int(input("最小值:"))
    2. upper = int(input("最大值:"))
    3. print("下面是你想要从{}到{}之间的阿姆斯特朗数\n".format(lower,upper))
    4. for num in range(lower,upper+1):
    5. sum = 0
    6. n = len(str(num))
    7. temp = num
    8. while temp >0:
    9.   digit = temp %10 # 获取个位数字
    10.   sum+= digit**n # 对计算结果进行累加
    11.   temp //= 10
    12. if num == sum:
    13.   print(num)
    复制代码
    运行结果:
    C++和python实现阿姆斯特朗数字查找实例代码-3.png

    C++实现:
    1. #include <iostream>
    2. using namespace std;
    3. int test(int a,int b,int c,int d)
    4. {
    5.         if(a)return a*a*a*a+b*b*b*b*b+c*c*c*c+d*d*d*d*d;
    6.         if(b)return b*b*b+c*c*c+d*d*d;
    7.         if(c)return c*c+d*d;
    8.         if(d)return d;
    9. }
    10. void func(int min, int max)
    11. {
    12.         if(min<=0||min>=max||max<0||max>9999)
    13.         {
    14.                 cout << "error!" << endl;
    15.         }
    16.         int a,b,c,d;
    17.         for(int i=min;i<=max;i++)
    18.         {
    19.                 a = i/1000;
    20.                 b = (i%1000)/100;
    21.                 c = (i%100)/10;
    22.                 d = i%10;
    23.                 if(i==test(a,b,c,d))
    24.                         cout << i << endl;
    25.         }
    26. }
    27. int main()
    28. {
    29.         int min,max;
    30.         cin >> min;
    31.         cin >> max;
    32.         func(min,max);
    33.         system("pause");
    34.         return 0;
    35. }
    复制代码
    运行结果展示:
    C++和python实现阿姆斯特朗数字查找实例代码-4.png

    C++太复杂了,就不能向python学学,多友好的语言,学C++心态炸裂的第二天,如果有帮助到你点个关注呗!
    到此这篇关于C++和python实现阿姆斯特朗数字查找的文章就介绍到这了,更多相关C++和python阿姆斯特朗数字查找内容请搜索咔叽论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持咔叽论坛!

    原文地址:https://www.jb51.net/article/201599.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 21:50

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表