杭州电子科技大学acm1076,,总是WA,求高手解答

#include<iostream>usingnamespacestd;intmain(){inti,n,m,sum=0,j;cin>>i;for(j=1;j<=i;j+... #include<iostream>
using namespace std;
int main()
{
int i,n,m,sum=0,j;
cin>>i;
for(j=1;j<=i;j++)
{
cin>>m>>n;
if(m%4==0&&m%100!=0)sum=m+4*(n-1);
else if(m%400==0)sum=m+4*(n-1);
else sum=m+4*n-m%4;
for(i=m/100+1;i<=sum/100;i++)
{
if(i%4!=0){sum=sum+4;}

}
cout<<sum<<endl;
sum=0;
}
return 0;
}
展开
 我来答
dalewzm
2013-01-21 · TA获得超过105个赞
知道答主
回答量:128
采纳率:0%
帮助的人:155万
展开全部
你的算法没有错,错误的是编程,第一个循环 i 控制的是处理用例的个数,可是你在第二个for循环中仍然用 i,就改变了它的值,使的处理数据个数与题目中不同,报错
zmryyj
2013-01-21 · TA获得超过1161个赞
知道小有建树答主
回答量:591
采纳率:0%
帮助的人:169万
展开全部
【题意】求y之后第n个闰年是哪年(若是y是闰年,y算第一年)。

【AC源代码】
#include <stdio.h>
bool leap(int y){
return y%4==0&&y%100||y%400==0;
}
int main(){
int y,T,n,cnt,i;
scanf("%d",&T);
while(T--){
scanf("%d%d",&y,&n);
cnt=0;
for(i=y;cnt<n;i++)
if(leap(i))
cnt++;
printf("%d\n",i-1);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackwind1987
2013-01-21 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:477万
展开全部
不好意思没看到后面的代码。。。
追问
后面的for就是用来判断的,给的三个例子的对了,就是交不上去呀
追答
可能是边界值的问题,如果给的年份是闰年,则这个年份算第一年。第一步应该算出从Y开始有多少整除4的年份,然后第二个减去整除100并且不整除400的年份。你这两步计算的边界要好好检查一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式