水仙花數(2013中南大學研究生上機複試題)

1261: 水仙花數

Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 633 Solved: 222
[Submit][Status][Web Board]
點擊打開鏈接

Description

春天是鮮花燦爛的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的:“水仙花數”是指一個三位數,它的各位數字的立方和等於其本身,比如:153=1^3+5^3+3^3。現在要求輸出所有在m和n範圍內的水仙花數。

Input

輸入數據有多組,每組佔一行,包括兩個整數m和n(100<=m<=n<=999)。

Output

對於每個測試實例,要求輸出所有在給定範圍內的水仙花數,就是說,輸出的水仙花數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用一個空格隔開(注意每組輸出的最後一個數之後不要加空格);如果給定的範圍內不存在水仙花數,則輸出no;每個測試實例的輸出佔一行。

Sample Input

100 120
300 380

Sample Output

no
370 371
思路:

    水題,直接暴力,注意一下個位、十位、百位的就行!

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
int a[1000];
int main()
{
	int m,n;
	while(~scanf("%d%d",&m,&n))
	{
	  int len=0,flag=0;
	  for(int i=m;i<=n;i++)
	  {
	  	int x=(i%10)*(i%10)*(i%10);//個 
		int y=(i%100/10)*(i%100/10)*(i%100/10);//十 
		int z=(i/100)*(i/100)*(i/100);//百 
		int t=x+y+z;
	        if(t>i)
	         continue;
		 if(t==i)
	  	 {
	  	  a[len++]=i;	
	  	  flag=1;
	 	 }
	  }
	  if(!flag)
	  {
	  	printf("no\n");
		continue; 
	  }
	  for(int i=0;i<len-1;i++)
	   printf("%d ",a[i]);
	   printf("%d\n",a[len-1]);
	}
	return 0;
}





發佈了221 篇原創文章 · 獲贊 17 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章