題目:“水仙花數”是指一個三位數,它的各位數字的立方和等於其本身,比如:153=1^3+5^3+3^3。
現在要求輸出所有在m和n範圍內的水仙花數
要輸出m到n之間的水仙花數,題目是要求m<=n的,所以在開始時一定要做處理當m<=n時纔開始判斷是否是水仙花數。可以用flag的值來判定m到n之間是否有滿足條件的數,如果到最好,flag的值一直沒有改變,說明沒有滿足條件的數,直接輸出no;否則輸出滿足條件的數。
要注意最後的輸出格式,除了最後一個數,前面每個數後面都有一個空格,也可以用flag來控制空格的輸出。
#include<stdio.h>
int main()
{
int m,n;
while (scanf ("%d%d",&m,&n)!=EOF)
{
int x,y,z,i;
if (m<=n)
{
int flag=0;
for (i=m;i<=n;i++)
{
x=i/100;
y=i/10%10;
z=i%10;
if (i==x*x*x+y*y*y+z*z*z)
{
if (flag==1)
printf (" ");
printf ("%d",i);
flag=1;
}
}
if (flag==0)
printf ("no\n");
else printf ("\n");
}
}
return 0;
}