C++与Python实现阿姆斯特朗数判断及范围查找

温以宁
温以宁
发布时间:2026-10-14 | 4人浏览过
原创

本文介绍了阿姆斯特朗数的定义,即一个n位正整数等于其各位数字的n次方之和。文章提供了C++和Python两种语言的实现代码,分别用于判断单个数字是否为阿姆斯特朗数,以及查找指定范围内的所有阿姆斯特朗数。通过对比两种语言的实现方式,帮助读者理解算法逻辑并掌握相关编程技巧。

题目解析

若一个n位正整数等于其各位数字的n次方之和,则该数被称为阿姆斯特朗数。例如:1^3 + 5^3 + 3^3 = 153。

1000以内的阿姆斯特朗数包括:1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

判断单个数字是否为阿姆斯特朗数

首先展示一段基础代码,用于判断用户输入的一个数字是否为阿姆斯特朗数。

以下是C++语言的实现版本。


#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;
}

程序运行结果如下:

接下来是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,"不是阿姆斯特朗数")

程序运行结果如下:

查找指定范围内的阿姆斯特朗数

使用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++实现范围查找功能。


#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++过程中可能遇到的挑战,如果本文对您有帮助,请记得关注。

关于C++和Python实现阿姆斯特朗数查找的介绍到此结束。如需了解更多相关内容,可搜索本站以往文章或继续阅读后续文章。感谢大家的支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表