码迷,mamicode.com
首页 > 其他好文 > 详细

++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++

时间:2015-12-03 13:59:12      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:

我也是无语了,想不出开哪里错了,先放到这里等一段时间不迷糊了 再去看看.或者给师傅看看.下面附上错误代码

#include<stdio.h>
void leap();
int a[200];
int main()
{
    int year,r,w,e,q,t,i,s,b,d,c;
    leap();
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&year,&d);
        if((year%4==0&&year%100!=0)||year%400==0)
            r=1;
        else
            r=0;
        w=d%97;
        e=d/97;
        c=year/400;
        b=year%400;
        for(i=0;i<150;i++)
        {
            if(a[i+1]>b&&a[i]<b||a[i]==b)
            {
                q=i;
                break;
            }
        }
        s=400*(c+e)+a[w+q-r];
        printf("%d\n",s);
    }
    return 0;
}
void leap()
{
    int i,w=0;
    for(i=0;i<450;i++)
    {
        if(i%4==0&&i%100!=0||i%400==0)
        {
            a[w++]=i;
        }
    }
}

下面附上正确的代码

//想法挺简单的,不过也是一种很好的想法.但是就是时间复杂度比较高.上一个时间复杂度比较低,
//但是 比较操蛋就是不对,也不知道咋回事.
#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        int a,b,i=0,num;
        scanf("%d%d",&a,&b);
        while(b!=0)
        {
            num=a+i;
            i++;
            if((num%4==0&&num%100!=0)||num%400==0)
            {
                b--;
            }
        }
        printf("%d\n",num);
    }
    return 0;
}

 

++++++++++++++++++++++++++++++++++++++++++++1076+++++++++++++++++++++++++++++++++++++++++++++++++++

标签:

原文地址:http://www.cnblogs.com/A-FM/p/5015556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!