欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

杭电oj2010 水仙花数C++实现(南昌理工学院寒假ACM集训队)

程序员文章站 2022-07-02 19:25:07
[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=2010题意:得到在m到n之间的“水仙花数”,“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身.#includeusing namespace std;int main(){int m,n; //定义两个整数 。 while(cin>>m>>n)//得到两个整数。 {int a,b,c,i,sum=0;//定义水仙花数的...

[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=2010
题意:得到在m到n之间的“水仙花数”,“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身.

#include<iostream>
using namespace std;
int main()
{
	int m,n; //定义两个整数 。 
	while(cin>>m>>n)//得到两个整数。 
	{
		int a,b,c,i,sum=0;//定义水仙花数的个位,十位,百位。定义一个sum控制输出。 
		for(i=m;i<=n;i++)//得到n到m中的所有数。 
		{
			a=i/100;//得到百位 。 
			b=i/10%10;//得到十位 。 
			c=i%10%10;//得到个位。 
			if(i==a*a*a+b*b*b+c*c*c)//判断是否为水仙花数。 
			{
				sum=sum+1;//控制第一个输出的水仙花数没有空格。 
				if(sum==1)//当sum=1时。 
				{
					cout<<i;//输出第一个水仙花数。 
				}
				else cout<<" "<<i;// 当再次有水仙花数时,sum已经大于或等于1,此时根据题目要求输出一个空格和一个水仙花数。 
			}
		}
		if(sum==0)//当sum等于0时,此时没有执行sum=sum+1,所以没有水仙花数。 
		{
			cout<<"no"<<endl;//根据题目要求输出 no ,还要注意换行。 
		}
		else cout<<endl;//该行代码是为了符合题目要求使输出的水仙花数单独占一行。 
	}
	return 0;
}

本文地址:https://blog.csdn.net/weixin_51765822/article/details/112802417