当前编程题:实验二 进制转换问题(16级) ---不吉利日期 |
6. |
问题描述
在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年以及该年一月一日是星期w(w=1..7),求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。
输入形式
输入有一行,第一个整数为年份,第二个整数为该年一月一日是星期几(w)。(1<=w<=7)
输出形式
输出有一到多行,每行一个月份,表示该月的13日是星期五。
样例输入
2006 7
样例输出
1
10
#include<iostream> using namespace std; int judge(int n) { int flag=0; if(n%4==0) { if(n%100==0) { if(n%400==0) { flag=1; } } else { flag=1; } } return flag; } void handle(int year,int day,int n) { int s=0,i,aa[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(n==1) { aa[1]=29; } for(i=0;i<12;i++) { if(i==0) { if((6+(day-1))%7==5) { cout<<i+1<<endl; } } else { s=s+aa[i-1]+13; //cout<<s<<endl; if((s%7+(day-1))%7==5) { cout<<i+1<<endl; } s=s-13; //cout<<s<<endl; } } } int main() { int year,day,n; cin>>year>>day; n=judge(year); //cout<<n; handle(year,day,n); return 0; } |