Vijos P1211生日日数

来源:互联网 发布:投资 知乎 编辑:程序博客网 时间:2024/04/28 07:11
P1211生日日数
Accepted
标签:[显示标签]

描述

CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

格式

输入格式

从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2006,日期绝对合法。

输出格式

输出文件只有一行,即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。

样例1

样例输入1[复制]

1979 4 16

样例输出1[复制]

2006-9-1

限制

来源

oibh
daifh改编


简单思路,定义两个数组,一个数组记录闰年每个月份的天数,另外一个数组记录平年每个月份的天数,因为求得是老师10000天之后的纪念日,所以用一个循环进行累加。判断当前年是否是闰年,过了一个月,日期要初始化为1,过了一年月份初始化为1。多注意这些细节,把握主要思路,这个题目就迎刃而解了!



#include<iostream>#include<cstdio>using namespace std;int main(){    int dm1[12]={31,28,31,30,31,30,31,31,30,31,30,31};  //记录平年天数    int dm2[12]={31,29,31,30,31,30,31,31,30,31,30,31};  //记录闰年天数    int y,m,d;    scanf("%d %d %d",&y,&m,&d);    for(int i=0;i<10000;i++)    {        d++;        if((y%4==0&&y%100!=0)||(y%400==0))        {            if(d>dm2[m-1])            {                d=1;                m+=1;            }            if(m>12)            {                y++;                m=1;            }        }        else        {            if(d>dm1[m-1])            {               d=1;               m+=1;            }            if(m>12)            {                y++;                m=1;            }        }    }    printf("%d-%d-%d\n",y,m,d);    return 0;}




0 0
原创粉丝点击