乘风原创程序

  • 杭电oj2010 水仙花数C++实现(南昌理工学院寒假ACM集训队)
  • 2021/1/19 9:44:52
  • [题目链接]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