杭电ACM 2010水仙花数

#include<stdio.h>main(){intm,n,a,b,c,d=0;while(scanf("%d%d",&m,&n)!=EOF){while(m<=n){... #include <stdio.h>
main()
{
int m,n,a,b,c,d=0;
while(scanf("%d %d",&m,&n)!=EOF)
{
while(m<=n)
{
a=m%10;
b=(m%100)/10;
c=m/100;
if(a*a*a+b*b*b+c*c*c==m)
{
printf("%d ",m);
d++;
}
m++;
}
if(d==0) printf("no");
printf("\n");
}
}

提交显示"WA",不知道哪里错了?

还请指点。

是C语言
我按照输入什么的都可以出来一模一样的结果,提交就不对了
展开
 我来答
我爱流雨飞轩
2011-04-14 · TA获得超过1199个赞
知道小有建树答主
回答量:665
采纳率:0%
帮助的人:472万
展开全部
#include<stdio.h>

int main()
{
int b, l, c, i;
int a[] = {1, 153, 370, 371, 407};

while (scanf("%d%d", &b, &l) != EOF)
{
c = 0;
for (i = 0 ; i < 5 ; i++)
{
if (a[i] >= b && a[i] <= l)
printf(c++ ? " %d" : "%d", a[i]);
}
printf(c ? "\n" : "no\n");
}

return 0;
}
这个是正确答案,算法效率比较高,已提交过,accepted
hhdyl740922
2011-04-13 · TA获得超过2098个赞
知道小有建树答主
回答量:1553
采纳率:20%
帮助的人:407万
展开全部
while(m<=n)
改用FOR语句,给M赋100开始,你的问题就出在这里
追问
M、N都是需要输入的,不是固定值
追答
是否少了return 0而无法正常结束?
学的C++,^-^所以没注意有m,n的输入。刚刚研究了一下,程序主体应该是没有问题的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panweikan
推荐于2017-11-24 · 超过19用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:47.4万
展开全部
这位是刚开始搞ACM的吧,这边有三个错误,但是都不是其他两位回答的,
第一个是基本知识,提交ACM题目主函数要命名为int型,并且结尾要加return 0;
第二个是逻辑错误,当你每次重新打入m,n时,你的水仙花个数都要给它清零,也就是d要再输入后清零。
最后是输出问题,仔细看看输出要求,“则要求从小到大排列在一行内输出,之间用一个空格隔开;”
也就是你输出的最后一个数后面是没有空格的,这里我用了一个判断来实现,当d=0时,也就是第一次输出时,我的数字前面没空格,之后输出空格再输出数字。
#include <stdio.h>
int main()
{
int m,n,a,b,c,d;
while(scanf("%d %d",&m,&n)!=EOF)
{
d=0; //每次输入要初始化个数。
while(m<=n)
{

a=m%10;
b=(m%100)/10;
c=m/100;
if(a*a*a+b*b*b+c*c*c==m)
{
if(d==0) printf("%d",m);
else printf(" %d",m);
d++;
}
m++;
}
if(d==0) printf("no\n");
else printf("\n");
}
return 0;
}
这个直接提交就能过,刚提交了下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen2008han
2011-04-13
知道答主
回答量:13
采纳率:0%
帮助的人:4.8万
展开全部
先算最高位c,再求b
b=(m-c*100)/10;
这是我原来用C++写的,你改成c吧!
#include<iostream>
using namespace std;
int main()
{ int m,n,x,y,z;
cin>>m>>n;
int flag=0;
for(int i=m;i<=n;i++)
{
x=i/100;
y=(i-x*100)/10;
z=i%10;
if(i==x*x*x+y*y*y+z*z*z)
{
cout<<i<<" ";
flag=1;
}
}
if(!flag)
{
cout<<"no"<<endl;
}

return 0;
}
追问
C++没有学过啊
cout<<i<<" ";
这句什么意思
追答
输出i 后面跟一个空格
cin 输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式