zoukankan      html  css  js  c++  java
  • [ACM]某一天的n天后是几年几月几日

    Description

         小Q,2012年9月10日步入大学。刚刚步入大学的小Q,依旧怀念着以前的生活,所以他每天都会计算现在离刚刚开学过

    去了多少天。可是某一天,突发奇想,想问你,给你n天,让你计算2012年9月10日后的n天是几年几月几日,比如
    n=10,则
    日期是2012年9月20日。这里你要注意可能会出现闰年的情况

    Input

     第一行一个整数T,表示有T组数据。

    每组数据输入一个n(n<=10000)

    Output

    每行输出,n天后的几年几月几日,年月日用/分开,细节看样例输出

    Sample Input

    3
    1
    10
    20

    Sample Output

    2012/9/11
    2012/9/20
    2012/9/30
    
    
    解题思路:
    刚看到这题感觉完了,肯定做不出来,因为感觉很复杂。不过后来理清思路,把所有情况都考虑到,还是做出来了,心理状态很重要啊。天数一天天的加,月末月份加一,日数为1,年末年份加1,月份为1,考虑不同月份的天数,考虑是否为闰年。
    
    
    代码:
    
    
    #include <iostream>
    using namespace std;
    int main()
    {
        int T;
        int i;
        cin>>T;
        for(i=1;i<=T;i++)
        {
            int year,month,day;
            year=2012;
            month=9;
            day=10;//初始化
            int days;
            cin>>days;
            int j;
            for(j=1;j<=days;j++)
            {
                day=day+1;//天数一天天的加
                if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
                {
                    if(day==32)
                    {
                        month=month+1;
                        day=1;
                    }
                    if(month==13)
                    {
                        year=year+1;//进位
                        month=1;//月初
                    }
                }
                if(month==2)//特殊的月份
                {
                    if(((year%4==0&&year%100!=0)||year%400==0))//判断是否为闰年
                    {
                      if(day==30)
                      {
                          day=1;
                          month=month+1;
                      }
                    }
                    else
                    {
                        if(day==29)
                        {
                            day=1;
                            month=month+1;
                        }
                    }
                }
                if(month==4||month==6||month==9||month==11)
                {
                    if(day==31)
                    {
                        month=month+1;
                        day=1;
                    }
                    if(month==13)
                    {
                        year=year+1;
                        month=1;
                    }
                }
            }
            cout<<year<<"/"<<month<<"/"<<day<<endl;
        }
        return 0;
    }
    


    运行截图:
    
    
    
    
  • 相关阅读:
    自定义瀑布流
    传值 属性 block 单例 协议
    sqlite数据库中 保存和读取UIData对象
    SQL
    关于在Xcode控制台打印的注意点
    synthesize的作用
    iPhone屏幕尺寸/launch尺寸/icon尺寸
    关于TableView上有一段留白的解决方法
    mac显示隐藏文件
    多线程之GCD
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697851.html
Copyright © 2011-2022 走看看