ZZULIOJ.1096: 水仙花數(函式專題)
阿新 • • 發佈:2018-11-19
1096: 水仙花數(函式專題)
題目描述
春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的:
“水仙花數”是指一個三位數,它的各位數字的立方和等於其本身,比如:153=13+53+33。
現在要求輸出所有在m和n範圍內的水仙花數。
輸入
輸入資料有多組,每組佔一行,包括兩個整數m和n(100<=m<=n<=999)。
輸出
對於每個測試例項,要求輸出所有在給定範圍內的水仙花數,就是說,輸出的水仙花數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用一個空格隔開;
如果給定的範圍內不存在水仙花數,則輸出no;
每個測試例項的輸出佔一行。
樣例輸入
100 120
300 380
樣例輸出
no
370 371
提示在不知道m到n之間有多少個水仙花數的情況下,如何控制兩個數之間有空格,而最後一個水仙花數之後沒有空格?解決方法之一是:第一個水仙花數之前不加空格,而其後每個水仙花數之前加空格。而通過一個標識變數可以判斷出是否是第一個水仙花數。
初做多例項測試,要注意變數賦初值的位置。
#include<stdio.h>
int main()
{
int m,n,i,t,x,y,z=0;
while(scanf("%d%d",&m,&n)!=EOF)
{
z=0;
for(i=m;i<=n;i++)
{
t=i/100;
x=i/10-i/100*10;
y=i%10;
if(t*t*t+x*x*x+y*y*y==i)
printf("%d ",i);z=1;
}
getchar();//吸收最後一個空格
if(z!=1) printf("no");
printf("\n");
}
return 0;
}