如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;
如果给定的范围内不存在水仙花数,则输出no;
输出格式有要求,注意如果存在,最后不要多一个空格
再给一份通过的
#include
bool flag[1000];
int main()
{
int sum = 100;
// 初始化
for(int i=1; i<10; i++){
for (int j = 0; j< 10; j++){
for(int k=0; k<10; k++){
if(sum==(i*i*i+j*j*j+k*k*k)){
flag[sum] = true;
}
sum ++;
}
}
}
int m,n;
while(scanf("%d%d", &m, &n)==2){
int i=m;
for(; i<=n; i++){
if(flag[i]){
printf("%d", i);
break;
}
}
if(i==n+1){
// 没找到
printf("no\n");
}else{
i++;
for(; i<=n; i++){
if(flag[i]){
printf(" %d", i);
}
}
printf("\n");
}
}
return 0;
}
for循环的条件判断应放在中间:for(i=0;m<=n,100<=m&&m<=n&&n<=999;m++)
你的程序输出是正确的啊!
153 370 371 407