洛谷P1202 [USACO1.1]Friday the Thirteenth

题目链接:P1202 [USACO1.1]黑色星期五Friday the Thirteenth

程序说明:

年月日三层循环,声明两个变量date和week同时开始计数。date累加日期,模除当月的天数等于0代表这个月的最后一天。week累加周,模除7等于0代表周日。

代码如下:

#include <iostream>
#include <cstdio>
using namespace std;
int n;
//判断闰年 
bool judge(int i) {
	if(i % 400 == 0 || i % 4 == 0 && i % 100 != 0)
		return true;
	else
		return false;
}
int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int b[7], i, j, k, date, week;
int main() {
	scanf("%d", &n);
	for(i = 1900; i < 1900 + n; i++) {
		if(judge(i))
			a[1] = 29;
		else
			a[1] = 28;
		for(j = 0; j < 12; j++) {
			for(k = 1; k <= a[j]; k++) {
				date++;
				date = date % a[j]; 
				week++;
				week = week % 7;
				if(date == 13)
					b[week]++;
			}			
		}
	}
	printf("%d %d %d %d %d %d %d", b[6], b[0], b[1], b[2], b[3], b[4], b[5]);
	return 0;
} 
发布了44 篇原创文章 · 获赞 0 · 访问量 822

猜你喜欢

转载自blog.csdn.net/Komatsu_1137/article/details/104090107