杭州电子科技大学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;
} 展开
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;
} 展开
3个回答
展开全部
【题意】求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;
}
【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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思没看到后面的代码。。。
追问
后面的for就是用来判断的,给的三个例子的对了,就是交不上去呀
追答
可能是边界值的问题,如果给的年份是闰年,则这个年份算第一年。第一步应该算出从Y开始有多少整除4的年份,然后第二个减去整除100并且不整除400的年份。你这两步计算的边界要好好检查一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询