永发信息网

杭电 acm 1017

答案:3  悬赏:30  手机版
解决时间 2021-02-18 18:32
下面这个代码wa了
#include<iostream>
using namespace std;
int main()
{

int zu,n,m,i=0,j=1;
cin >>zu;
while(zu--)
{
while(cin>>n>>m&&n!=0)
{
int a,b;
for(a=1;a<n-1;a++)//for (a=1,a<n-1;++a)
{
for(b=a+1;b<n;b++)// for(b=a+1;b<n;++b)
{
if(((a*a+b*b+m)%(a*b))==0)
i++;
}
}
cout<<"Case "<<j++<<": "<<i<<endl;
i=0;

}
j=0;
if (zu)
cout<<endl;
}

}
但是如果改成注释里那样就能ac 就把a++改成++a之类的,而且我验算了几组数据,两个程序都是一样的答案? 这是为什么啊? for(a=1;a<n-1;a++)//for (a=1,a<n-1;++a)这两个有什么不一样吗? 谢谢了
最佳答案
跟a和b无关,两个循环没有差别,不改也一样,重点是j=0和++j
对应的三句:
int zu,n,m,i=0,j=1;
cout<<"Case "<<j++<<": "<<i<<endl;
j=0;
这里三句必须相互匹配,你之前WA是因为第一次声明是j=1,用完后再初始化的时候就变成j=0了。
所以只能是下面两种写法:
int zu,n,m,i=0,j=1;
cout<<"Case "<<j++<<": "<<i<<endl;
j=1;
或者:
int zu,n,m,i=0,j=0;
cout<<"Case "<<++j<<": "<<i<<endl;
j=0;
重新初始化必须跟最初的一致。
全部回答
它有多组测试数据,你这样写只能测试一组就结束了,当然要错了。应该这样写 #include using namespace std; int main() { int a, b, c; while(cin >> a >> b) //直到文件的结尾为止 { c = a + b; cout << c << endl; } return 0; }
a++ 和 ++a的区别在于,a++是先进行其它操作后在自增,cout《《j++ 就是先输出j再自增
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求音乐大神 乐器大师 听听Astronomia这首音乐
【磁悬浮技术】磁悬浮技术的研究源于()
我的歌声里.LRC歌词
用千.......万......的形式来写形容经过长期
欧洲移民将欧洲的宗教、生活方式带到了美洲,
蒙山的冬天冷不冷?
你想要的往往不是你真正需要的
富德生命人寿福相随产品60岁前医疗费用怎么赔
顺如水,福如何对联?
已知sina-cosa=根号6/2 求sinacosa的值
宏达标件螺丝批发部地址在什么地方,想过去办
在一块儿近似平行四边形的菜地里种萝卜,平均
暗黑破坏神3先祖召唤怎么永久存在
十九时四十分是什么时辰
高端漆面镀晶为啥镀上去会很难擦 求解答
推荐资讯
从奉节坐慢船到万州,晚上最晚的一班船是好久
索尼港行和大陆行货有什么区别
宝马为什么这么贵
已知病毒的核酸有双链DNA、单链DNA、双链RNA
压抑( )词语搭配,急急急!!!!在线等
凌锋金属制品有限公司我想知道这个在什么地方
咱家面馆怎么去啊,有知道地址的么
温哥华山庄南区北门(人行门)地址有知道的么?
七天优品的东西可靠吗
5S1533插入电信卡为什么显示无服务。
解码错误怎么解决???谢谢
乙亥 乙酉 乙酉 乙丑时出生的生辰八字是?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?