#113. 枚举算法(NOIP2015)打印月历
枚举算法(NOIP2015)打印月历
(NOIP2015)打印月历
输入月份m(1≤m≤12),按一定格式打印2015年第m月的月历。例如,2015年1月的月历打印效果如下(第一列为周日):
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
#include<iostream>
using namespace std;
const int dayNum[]={-1,31, ① ,31,30,31,30,31,31,30,31,30,31};
int m,offset,i;
int main(){
cin>>m;
cout<<"S\tM\tT\tW\tT\tF\tS"<<endl;//'\t'为TAB制表符
offset=3;
for (i=1;i<m;i++)
offset=(offset+ ② )%7;
for (i=0;i<offset;i++)
cout<<"\t";
for (i=1;i<= ③ ;i++) {
cout<<i;
if (i==dayNum[m] ④ ⑤ %7==0)
cout<<endl;
else
cout<<"\t";
}
return 0;
}
①处应填( )。
{{ select(1) }}
- 28
- 29
- 30
- 31
②处应填( )。
{{ select(2) }}
- dayNum[0]
- dayNum[i-1]
- dayNum[i]
- dayNum[3]
③处应填( )。
{{ select(3) }}
- dayNum[m]
- dayNum[m*m]
- m
- m*m
④处应填( )。
{{ select(4) }}
- &&
- ||
- !
- ==
⑤处应填( )。
{{ select(5) }}
- dayNum[offset]
- !
- (offset+dayNum[0])
- (offset+i)