服务器之家

服务器之家 > 正文

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

时间:2021-08-10 00:57     来源/作者:鹏鹏写代码

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
int main()
{
    int n, r, sum=0, temp;
    cout<<"enter the number= ";
    cin>>n;
    temp=n;
    while(n>0)
    {
        r=n%10;
        sum=sum+(r*r*r);
        n=n/10;
    }
    if(temp==sum)
        cout<<"armstrong number."<<endl;
    else
        cout<<"not armstrong number."<<endl;
    return 0;
}

运行结果:

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

接下来看看python

?
1
2
3
4
5
6
7
8
9
10
11
12
num = int(input("请输入一个数字:"))
sum= 0
n = len(str(num))
temp = num
while temp >0:
 digit = temp %10 # 获取个位数字
 sum += digit**n # 对计算结果进行累加
 temp //= 10
if num == sum :
 print("太棒了!",num,"是阿姆斯特朗数")
else:
 print("很遗憾!",num,"不是阿姆斯特朗数")

运行结果:

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

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

python实现:

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

运行结果:

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

c++实现:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
using namespace std;
 
int test(int a,int b,int c,int d)
{
    if(a)return a*a*a*a+b*b*b*b*b+c*c*c*c+d*d*d*d*d;
    if(b)return b*b*b+c*c*c+d*d*d;
    if(c)return c*c+d*d;
    if(d)return d;
}
void func(int min, int max)
{
    if(min<=0||min>=max||max<0||max>9999)
    {
        cout << "error!" << endl;
    }
    int a,b,c,d;
    for(int i=min;i<=max;i++)
    {
        a = i/1000;
        b = (i%1000)/100;
        c = (i%100)/10;
        d = i%10;
        if(i==test(a,b,c,d))
            cout << i << endl;
    }
}
 
int main()
{
    int min,max;
    cin >> min;
    cin >> max;
 
    func(min,max);
 
    system("pause");
    return 0;
}

运行结果展示:

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

c++太复杂了,就不能向python学学,多友好的语言,学c++心态炸裂的第二天,如果有帮助到你点个关注呗!

到此这篇关于c++和python实现阿姆斯特朗数字查找的文章就介绍到这了,更多相关c++和python阿姆斯特朗数字查找内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_44176343/article/details/110744773

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部