呃...错的离谱
查看原帖
呃...错的离谱
1013323
wangyutian578楼主2023/8/14 20:48
#include <bits/stdc++.h>
using namespace std;
map<int,int> mp;
int main()
{
	int n;
	cin >> n;
	int s = 1900 + n - 1;
	int y,m,d,dw = 1;
	y = 1900;
	while(y <= s)
	{
		m = 1;
		while(m <= 12)
		{
			d = 1;
			if(m == 2)
			{
				if(y % 4 == 0 && y % 100 != 0)
				{	
					while(d <= 29)
					{
						dw++;
						if(dw != 7)
						{
							dw = dw % 7;
						}
						d++;
						if(d == 13)
						{
							mp[dw]++;
						}
					}
				}
				else if(y % 400 == 0)
				{
					while(d <= 29)
					{
						dw++;
						if(dw != 7)
						{
							dw = dw % 7;
						}
						d++;
						if(d == 13)
						{
							mp[dw]++;
						}
					}
				}
				else
				{
					while(d <= 28)
					{
						dw++;
						if(dw != 7)
						{
							dw = dw % 7;
						}
						d++;
						if(d == 13)
						{
							mp[dw]++;
						}
					}
				}
			}
			else if(y == 4 || y == 6 || y == 9 || y == 11)
			{
				while(d <= 30)
				{
					dw++;
					if(dw != 7)
					{
						dw = dw % 7;
					}
					d++;
					if(d == 13)
					{
						mp[dw]++;
					}
				}
			}
			else
			{
				while(d <= 31)
				{
					dw++;
					if(dw != 7)
					{
						dw = dw % 7;
					}
					d++;
					if(d == 13)
					{
						mp[dw]++;
					}
				}
			}
			m++;
		}
		y++;
	}
	cout << mp[6] << " " << mp[7] << " ";
	cout << mp[1] << " " << mp[2] << " ";
	cout << mp[3] << " " << mp[4] << " ";
	cout << mp[5] << endl;
	return 0;
}

代码求调,样例不过

2023/8/14 20:48
加载中...