题解

129 条题解

  • 0
    @ 2009-09-14 19:20:02

    var x,y,n,s:longint;

    begin

    read(x,y,n);

    s:=10000;

    repeat

    n:=n+1;s:=s-1;

    if (n=30)and(y=2)and(x mod 4=0)then begin n:=1;y:=y+1;end;

    if (n=29)and(y=2)and(x mod 40)then begin n:=1;y:=y+1;end;

    if (n=32)and((y=1)or(y=3)or(y=5)or(y=7)or(y=8)or(y=10)or(y=12))

    then begin n:=1;y:=y+1;end;

    if (n=31)and((y=4)or(y=6)or(y=9)or(y=11))then begin n:=1;y:=y+1;end;

    if y=13 then begin y:=1;x:=x+1;end;

    until s=0;

    write(x,'-',y,'-',n);

    end.

    百分之百的通过

  • 0
    @ 2009-09-05 15:01:13

    var

    y,m,d,i:longint;

    flag:boolean;

    begin

    readln(y,m,d);

    for i:=1 to 10000 do

    begin

    flag:=false;

    if (y mod 100 = 0) and (y mod 400=0) then flag:=true;

    if (y mod 100 0) and (y mod 4 =0) then flag:=true;

    inc(d);

    if (d=32) and (m=12) then begin inc(y); m:=1; d:=1; continue; end;

    if flag and (m=2) and (d=30) then begin inc(m); d:=1; continue; end;

    if not(flag) and (m=2) and (d=29) then begin inc(m); d:=1; continue; end;

    if (m in [1,3,5,7,8,10]) and (d=32) then begin inc(m); d:=1; continue; end;

    if (m in [4,6,9,11]) and (d=31) then begin inc(m); d:=1; continue; end;

    end;

    writeln(y,'-',m,'-',d);

    end.

  • 0
    @ 2009-08-25 16:01:35

    var

    y,m,d,t:integer;

    function day(k:integer):integer;

    var days:integer;

    begin

    case m of

    1,3,5,7,8,10,12:days:=31;

    4,6,9,11:days:=30;

    2:if ((y mod 4=0) and (y mod 1000)) or ((y mod 100=0) and (y mod 400=0))

    then days:=29

    else days:=28;

    end;

    day:=days;

    end;

    begin

    assign(input,'1.in');

    assign(output,'1.out');

    reset(input);

    rewrite(output);

    readln(y,m,d);

    t:=10000;

    repeat

    t:=t-1;

    d:=d+1;

    if d>day(m) then begin d:=1;inc(m);end;

    if m>12 then begin m:=1;inc(y);end;

    until

    t=0;

    writeln(y,'-',m,'-',d);

    close(input);

    close(output);

    end.

  • 0
    @ 2009-08-20 17:22:53

    const

    a:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);

    var

    y,m,d:longint;

    function check:longint;

    begin

    check:=0;

    if (((y mod 4=0) and (y mod 1000)) or (y mod 400=0)) and (m=2) then

    check:=1;

    end;

    begin

    readln(y,m,d);

    d:=10000+d;

    while d>a[m]+check do

    begin

    d:=d-a[m]-check;

    inc(m);

    if m=13 then

    begin

    m:=1;

    inc(y);

    end;

    end;

    writeln(y,'-',m,'-',d);

    end.

    25行搞定

    抄我的吧

  • 0
    @ 2009-08-18 19:51:34

    var

    y,m,d,s,i:integer; run:boolean;

    begin

    read(y,m,d);

    y:=y+24; s:=10000-(365*4+1)*6;

    for i:=1 to s do

      begin

       inc(d);

       if((y mod 4=0)and(y mod 1000))or(y mod 400=0)then

        run:=true else run:=false;

       if d>28 then

        case m of

         2:if((d=29)and(not run))or((d=30)and(run)) then

           begin inc(m); d:=1; end;

         1,3,5,7,8,10:if d=32 then begin inc(m); d:=1; end;

         4,6,9,11:if d=31 then begin inc(m); d:=1; end;

         12:if d=32 then begin inc(y);m:=1; d:=1; end;

        end;

       end;

    write(y,'-',m,'-',d);

    end.

  • 0
    @ 2009-08-15 18:24:11

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var

    y,m,d,s,i:integer; run:boolean;

    begin

    read(y,m,d);

    y:=y+24; s:=10000-(365*4+1)*6;

    for i:=1 to s do

    begin

    inc(d);

    if((y mod 4=0)and(y mod 1000))or(y mod 400=0)then

    run:=true else run:=false;

    if d>28 then

    case m of

    2:if((d=29)and(not run))or((d=30)and(run)) then

    begin inc(m); d:=1; end;

    1,3,5,7,8,10:if d=32 then begin inc(m); d:=1; end;

    4,6,9,11:if d=31 then begin inc(m); d:=1; end;

    12:if d=32 then begin inc(y);m:=1; d:=1; end;

    end;

    end;

    write(y,'-',m,'-',d);

    end.

    ps:秒杀,太简单了

  • 0
    @ 2009-08-15 12:26:15

    耶~

    终于俩星了……

    哈哈哈哈哈~

  • 0
    @ 2009-08-08 07:48:33

    题目出的水 不用考虑判断闰年的更复杂的情况

    var

    max:array[1..12] of integer;

    y,m,d,i:longint;

    begin

    readln(y,m,d);

    max[1]:=31; max[3]:=31; max[5]:=31; max[7]:=31; max[8]:=31; max[10]:=31; max[12]:=31;

    max[4]:=30; max[6]:=30; max[9]:=30; max[11]:=30;

    while imax[m] then

    begin

    dec(d,max[m]);

    inc(m);

    end;

    if m>12 then

    begin

    dec(m,12);

    inc(y);

    end;

    end;

    writeln(y,'-',m,'-',d);

    end.

  • 0
    @ 2009-08-03 20:59:34

    绝对水题。。。。。。。

    Accepted 有效得分:100 有效耗时:0ms

    一次AC。。。。。。。。。。。

  • 0
    @ 2009-07-30 14:30:29

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    const

    n:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);

    var

    y,m,d:integer;

    function check:integer;

    begin

    if (y mod 4 = 0)and(m=2) then exit(1); exit(0);

    end;

    begin

    readln(y,m,d);

    inc(d,10000);

    while d>n[m]+check do

    begin

    dec(d,n[m]+check); inc(m);

    if m=13 then begin m:=1; inc(y); end;

    end;

    writeln(y,'-',m,'-',d);

    end.

    绝对最短、、!!!!! 下面几楼写那么长的程序也敢说水题???

    有大牛写更短的吗?

  • 0
    @ 2009-07-28 14:17:09

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    庆祝本人在VijosAC第50题!

  • 0
    @ 2009-07-28 14:13:15

    一次AC啊

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    var y,m,d:integer;

    function days(y,m:integer):integer;

    begin

    case m of

    1,3,5,7,8,10,12:exit(31);

    4,6,9,11:exit(30);

    2:

    if ((y mod 4=0)and(y mod 1000))or(y mod 400=0) then exit(29)

    else exit(28);

    end;

    end;

    begin

    read(y,m,d);

    d:=d+10000;

    while d>days(y,m) do

    begin

    d:=d-days(y,m);

    m:=m+1;

    if m>12 then

    begin

    m:=m-12;

    y:=y+1;

    end;

    end;

    write(y,'-',m,'-',d);

    end.

  • 0
    @ 2009-07-26 00:47:40

    水题啊~

    庆祝一下,难得一次AC

    ^_^

    #include

    using namespace std;

    int year,month,day;

    void init ()

    {

    cin>>year>>month>>day;

    }

    int data;

    int t[3][13];

    void make ()

    {

    t[1][1]=31;

    t[1][2]=28;

    t[1][3]=31;

    t[1][4]=30;

    t[1][5]=31;

    t[1][6]=30;

    t[1][7]=31;

    t[1][8]=31;

    t[1][9]=30;

    t[1][10]=31;

    t[1][11]=30;

    t[1][12]=31;

    t[2][1]=31;

    t[2][2]=29;

    t[2][3]=31;

    t[2][4]=30;

    t[2][5]=31;

    t[2][6]=30;

    t[2][7]=31;

    t[2][8]=31;

    t[2][9]=30;

    t[2][10]=31;

    t[2][11]=30;

    t[2][12]=31;

    }

    int pd ()

    {

    if (year%4==0) return 2;

    else return 1;

    }

    void work ()

    {

    int i,k;

    make ();

    k=pd ();

    while (1)

    {

    day++;

    if (t[k][month]==day-1)

    {

    day=1;

    month++;

    }

    if (month==13)

    {

    year++;

    month=1;

    k=pd ();

    }

    data++;

    if (data==10000) break;

    }

    }

    void output ()

    {

    cout

  • 0
    @ 2009-07-23 15:34:42

    program dsa;

    var n,y,r,i:integer;

    begin

    read(n,y,r);

    for i:=1 to 10000 do

    begin

    if ((y=1)or(y=3)or(y=5)or(y=7)or(y=8)or(y=10))and(r=31)then begin inc(y);r:=1;end

    else if (y=12) and (r=31) then begin inc(n);y:=1;r:=1;end

    else if ((y=4)or(y=6)or(y=9)or(y=11))and(r=30)then begin inc(y);r:=1;end

    else if (y=2)and(n mod 40)and(r=28) then begin inc(y);r:=1;end

    else if (y=2)and((n mod 400=0)or((n mod 1000)and(n mod 4=0)))and(r=29)then begin inc(y);r:=1;end

    else inc(r);

    end;

    write(n,'-',y,'-',r);

    end.

    农夫山泉

  • 0
    @ 2009-06-14 09:50:34

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    #include

    int year(int n)

    {

    if( n%400==0 || (n%100!=0&&n%4==0) )

    return 1;

    return 0;

    }

    int main()

    {

    int yy,mm,dd,i;

    int m[][13]={ {-1,31,28,31,30,31,30,31,31,30,31,30,31},

    {-1,31,29,31,30,31,30,31,31,30,31,30,31} };

    scanf("%d%d%d",&yy,&mm,&dd);

    for(i=0;im[year(yy)][mm])

    {

    mm++; dd=1;

    }

    if(mm>12)

    {

    yy++; mm=1; dd=1;

    }

    }

    printf("%d-%d-%d\n",yy,mm,dd);

    getchar();

    getchar();

    return 0;

    }

    /*一开始忘了数组下标从0开始了

    提交了几次都没AC,郁闷*/

  • 0
    @ 2009-06-07 16:07:35

    program p1211;

    var

    yy,mm,dd:int64;

    i:integer;

    procedure rijinyue;

    begin

    dd:=1;

    inc(mm);

    end;

    procedure yuejinnian;

    begin

    mm:=1;

    dd:=1;

    inc(yy);

    end;

    begin

    read(yy,mm,dd);

    for i:=1 to 10000 do

    begin

    inc(dd);

    begin

    if (mm=1)and(dd=32)

    then rijinyue;

    if (mm=3)and(dd=32)

    then rijinyue;

    if (mm=5)and(dd=32)

    then rijinyue;

    if (mm=7)and(dd=32)

    then rijinyue;

    if (mm=8)and(dd=32)

    then rijinyue;

    if (mm=10)and(dd=32)

    then rijinyue;

    if (mm=12)and(dd=32)

    then rijinyue;

    if (mm=4)and(dd=31)

    then rijinyue;

    if (mm=6)and(dd=31)

    then rijinyue;

    if (mm=9)and(dd=31)

    then rijinyue;

    if (mm=11)and(dd=31)

    then rijinyue;

    if ((yy mod 1000)and(yy mod 4=0))or(yy mod 400=0)

    then begin

    if(mm=2)and(dd=30)

    then rijinyue

    end

    else

    if (mm=2)and(dd=29)

    then rijinyue;

    end;

    begin

    if mm=13

    then yuejinnian;

    end;

    end;

    write(yy,'-',mm,'-',dd);

    end.

  • 0
    @ 2009-06-02 19:09:51

    洪水泛滥啊!

  • 0
    @ 2009-05-30 12:38:58

    program temp;

    var

    yy,mm,dd,i:integer;

    procedure im;

    begin

    dd:=1;

    inc(mm);

    end;

    procedure iy;

    begin

    mm:=1;

    dd:=1;

    inc(yy);

    end;

    begin

    readln(yy,mm,dd);

    for i:=1 to 10000 do

    if dd

  • 0
    @ 2009-05-24 12:14:25

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    模拟的方法,不过我一开始不小心把判断闰年的数忘了变成FALSE了,结果花了好久才ac,~~~~(>_

  • 0
    @ 2009-05-19 18:32:30

    #include

    using namespace std;

    int yy,mm,dd;

    int day=10000;;

    int da[3][13]=

    {

    {0,0,0, 0,0,0 ,0,0,0 ,0,0,0,0},

    {0,31,28,31,30,31,30,31,31,30,31,30,31},

    {0,31,29,31,30,31,30,31,31,30,31,30,31}

    };

    int judge(int year)

    {

    if(year%100==0)

    { if(year%400==0)return 1;

    else return 0;}

    else

    {if(year%4==0)return 1;

    else return 0;

    }

    }

    bool gtr=false;

    int main()

    {

    cin>>yy>>mm>>dd;

    int Y=yy,M=mm,D=dd;

    day+=D;

    for(int i=yy;;i++)

    { int k=1;

    if(judge(i))k=2;

    for(int j=M;j

信息

ID
1211
难度
3
分类
模拟 点击显示
标签
(无)
递交数
2740
已通过
1333
通过率
49%
被复制
16
上传者