1. 程式人生 > >【ACM】杭電OJ 1076

【ACM】杭電OJ 1076

陣列要開的大一些,一開始陣列只開到10000+5,就顯示了錯誤的資料

AC程式碼: 

#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 1000000+5;
int a[maxn];
int main ()
{
	int i;
	memset(a,0,sizeof(a));
	for(i=1;i<=maxn;i++)
	{
		if((i%4==0 && i%100!=0)||(i%400==0))
		{
			a[i] = 1;
		}
	}
	int T,n,year,num;
	cin>>T;
	while(T--)
	{
		num=0;
		cin>>year>>n;
		for(i=year;;i++)
		{
			if(a[i])	num++;
			if(num==n)	break;
		}
		cout<<i<<endl;
	}
	return 0;
}