#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)