脚本专栏 
首页 > 脚本专栏 > 浏览文章

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

(编辑:jimmy 日期: 2024/12/31 浏览:3 次 )

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++写的

#include <iostream>
using namespace std;
int main()
{
	int n, r, sum=0, temp; 
	cout<<"Enter the Number= "; 
	cinn; 
	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

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实现:

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++实现:

#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++心态炸裂的第二天,如果有帮助到你点个关注呗!

上一篇:Python虚拟环境virtualenv创建及使用过程图解
下一篇:Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
一句话新闻
一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?