问题标题: 酷町堂:4964 日历本

0
0
已解决
徐子宸
徐子宸
中级天翼
中级天翼

4964   日历本

经验值:1600 时间限制:1000毫秒

题目描述 Description

我们经常需要使用日历,所以需要一个能生成日历的程序。
先要求你写一个程序,只需要输入年份,就能生成正确的日历。

输入描述 Input Description

输入包含多组测试数据。每组输入一个整数Y(1800<=Y<=2100),表示公元年份。

输出描述 Output Description

对于每组输入,输出对应的日历本。选中下面的输出样例查看具体的输出格式,注意空格的输出。

样例输入 Sample Input

2010

样例输出 Sample Output

 

 

以下是0分代码,可样例明明都过了

请大佬帮忙看一下……

 

 

#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int f(int y,int m,int d){
    if(m==1||m==2)m+=12,y--;
    int c=y/100;
    y=y-100*c;
    int w=int(c/4-2*c+y+int(y/4)+(26*(m+1)/10)+d-1);
    return (w%7+7)%7+1;
}
int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void judge(int y){
    if((y%4==0&&y%100!=0||y%400==0))mon[2]++;
}
int main(){
    int n;
    cin>>n;
    judge(n); 
    cout<<"                              "<<n<<"                              \n\n";
    cout<<"      January               February               March        \n";
    cout<<"Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa\n";
    int w1=f(n,1,1),m1=1,d1=1;
    int w2=f(n,2,1),m2=2,d2=1;
    int w3=f(n,3,1),m3=3,d3=1;
    for(int i=1;i<=(w1-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d1<<' ';
    while(w1<7){
        w1++;
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    
    for(int i=1;i<=(w2-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d2<<' ';
    while(w2<7){
        w2++;
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=(w3-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d3<<' ';
    while(w3<7){
        w3++;
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    bool f1=0,f2=0,f3=0;
    for(int i=1;i<=7;i++){
        if(d1>=mon[1]){
            f1=1;
        }
        if(f1){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d2>=mon[2]){
            f2=1;
        }
        if(f2){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d3>=mon[3]){
            f3=1;
        }
        if(f3){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    if(!f1){
        for(int i=1;i<=7;i++){
            if(d1>=mon[1]){
                f1=1;
            }
            if(f1){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d1<<' ';
        }
    }else{
        cout<<"                    ";
    }
    if(!f2){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d2>=mon[2]){
                f2=1;
            }
            if(f2){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d2<<' ';
        }
    }else{
        cout<<"                      ";
    }
    if(!f3){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d3>=mon[3]){
                f3=1;
            }
            if(f3){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d3<<' ';
        }
    }else{
        cout<<"                      ";
    }
    cout<<endl;
    cout<<"       April                  May                   June        \n";
    cout<<"Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa\n";
    w1=f(n,4,1),m1=4,d1=1;
    w2=f(n,5,1),m2=5,d2=1;
    w3=f(n,6,1),m3=6,d3=1;
    for(int i=1;i<=(w1-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d1<<' ';
    while(w1<7){
        w1++;
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    
    for(int i=1;i<=(w2-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d2<<' ';
    while(w2<7){
        w2++;
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=(w3-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d3<<' ';
    while(w3<7){
        w3++;
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    f1=0,f2=0,f3=0;
    for(int i=1;i<=7;i++){
        if(d1>=mon[4]){
            f1=1;
        }
        if(f1){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d2>=mon[5]){
            f2=1;
        }
        if(f2){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d3>=mon[6]){
            f3=1;
        }
        if(f3){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    if(!f1){
        for(int i=1;i<=7;i++){
            if(d1>=mon[4]){
                f1=1;
            }
            if(f1){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d1<<' ';
        }
    }else{
        cout<<"                    ";
    }
    if(!f2){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d2>=mon[5]){
                f2=1;
            }
            if(f2){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d2<<' ';
        }
    }else{
        cout<<"                      ";
    }
    if(!f3){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d3>=mon[6]){
                f3=1;
            }
            if(f3){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d3<<' ';
        }
    }else{
        cout<<"                      ";
    }
    cout<<endl;
    cout<<"        July                 August              September      \n";
    cout<<"Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa\n";
    w1=f(n,7,1),m1=7,d1=1;
    w2=f(n,8,1),m2=8,d2=1;
    w3=f(n,9,1),m3=9,d3=1;
    for(int i=1;i<=(w1-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d1<<' ';
    while(w1<7){
        w1++;
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    
    for(int i=1;i<=(w2-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d2<<' ';
    while(w2<7){
        w2++;
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=(w3-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d3<<' ';
    while(w3<7){
        w3++;
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    f1=0,f2=0,f3=0;
    for(int i=1;i<=7;i++){
        if(d1>=mon[7]){
            f1=1;
        }
        if(f1){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d2>=mon[8]){
            f2=1;
        }
        if(f2){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d3>=mon[9]){
            f3=1;
        }
        if(f3){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    if(!f1){
        for(int i=1;i<=7;i++){
            if(d1>=mon[7]){
                f1=1;
            }
            if(f1){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d1<<' ';
        }
    }else{
        cout<<"                    ";
    }
    if(!f2){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d2>=mon[8]){
                f2=1;
            }
            if(f2){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d2<<' ';
        }
    }else{
        cout<<"                      ";
    } 
    if(!f3){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d3>=mon[9]){
                f3=1;
            }
            if(f3){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d3<<' ';
        }
    }else{
        cout<<"                      ";
    } 
    cout<<endl;
    cout<<"      October               November              December      \n";
    cout<<"Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa\n";
    w1=f(n,10,1),m1=10,d1=1;
    w2=f(n,11,1),m2=11,d2=1;
    w3=f(n,12,1),m3=12,d3=1;
    for(int i=1;i<=(w1-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d1<<' ';
    while(w1<7){
        w1++;
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    
    for(int i=1;i<=(w2-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d2<<' ';
    while(w2<7){
        w2++;
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=(w3-1)*3+1;i++){
        cout<<' ';
    }
    cout<<d3<<' ';
    while(w3<7){
        w3++;
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    f1=0,f2=0,f3=0;
    for(int i=1;i<=7;i++){
        if(d1>=mon[10]){
            f1=1;
        }
        if(f1){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d1<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d2>=mon[11]){
            f2=1;
        }
        if(f2){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d2<<' ';
    }
    cout<<' ';
    for(int i=1;i<=7;i++){
        if(d3>=mon[12]){
            f3=1;
        }
        if(f3){
            cout<<"   ";
            continue;
        }
        cout<<setw(2)<<++d3<<' ';
    }
    cout<<' ';
    cout<<endl;
    if(!f1){
        for(int i=1;i<=7;i++){
            if(d1>=mon[10]){
                f1=1;
            }
            if(f1){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d1<<' ';
        }
    }else{
        cout<<"                    ";
    }
    if(!f2){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d2>=mon[11]){
                f2=1;
            }
            if(f2){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d2<<' ';
        }
    }else{
        cout<<"                      ";
    }
    if(!f3){
        cout<<' '<<' ';
        for(int i=1;i<=7;i++){
            if(d3>=mon[12]){
                f3=1;
            }
            if(f3){
                cout<<"   ";
                continue;
            }
            cout<<setw(2)<<++d3<<' ';
        }
    }else{
        cout<<"                      ";
    }
    return 0;
}


0
0
王泽轩
王泽轩
资深天翼
资深天翼

哈哈哈,写了这么长代码,错了!

0
王一帆
王一帆
中级守护
中级守护

老徐,看一下@曹灿阳@徐子辰

0
我要回答