链接:http://codeforces.com/problemset/problem/760/A
Petr wants to make a calendar for current month. For this purpose he draws a table in which columns correspond to weeks (a week is seven consequent days from Monday to Sunday), rows correspond to weekdays, and cells contain dates. For example, a calendar for January 2017 should look like on the picture:
Petr wants to know how many columns his table should have given the month and the weekday of the first date of that month? Assume that the year is non-leap.
The only line contain two integers m and d (1 ≤ m ≤ 12, 1 ≤ d ≤ 7) — the number of month (January is the first month, December is the twelfth) and the weekday of the first date of this month (1 is Monday, 7 is Sunday).
Print single integer: the number of columns the table should have.
1 7
6
1 1
5
11 6
5
The first example corresponds to the January 2017 shown on the picture in the statements.
In the second example 1-st January is Monday, so the whole month fits into 5 columns.
In the third example 1-st November is Saturday and 5 columns is enough.
给出m(月份)和d(这个月1号的星期数),求这个月有几个星期,不满一星期的也算
水题
求星期天的个数,如果最后还有余数,星期数加一
代码:
#define _CRT_SBCURE_MO_DEPRECATE
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string>
#include<string.h>
#include<set>
#include<queue>
#include<stack>
#include<functional>
using namespace std;
const int maxn = 10000000 + 10;
const int INF = 0x3f3f3f3f;
typedef long long ll;
int d, m;
int day[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int sum;
int main()
{
while (scanf("%d %d", &d, &m) != EOF) {
sum = 0;
int k = m;
if (k == 7) {
sum = 1;
k = 1;
}
for (int i = 2; i <= day[d - 1]; i++) {
k++;
k = k % 7;
if (k == 0) sum++;
if (i == day[d - 1] && k != 0)sum++;
}
printf("%d\n", sum);
}
return 0;
}