zoukankan      html  css  js  c++  java
  • POJ C程序设计进阶 编程题#4:Tomorrow never knows?

    来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

    注意: 总时间限制: 1000ms 内存限制: 65536kB

    描述

    甲壳虫的《A day in the life》和《Tomorrow never knows》脍炙人口,如果告诉你a day in the life,真的会是tomorrow never knows?相信学了计概之后这个不会是难题,现在就来实现吧。

    读入一个格式为yyyy-mm-dd的日期(即年-月-日),输出这个日期下一天的日期。可以假定输入的日期不早于1600-01-01,也不晚于2999-12-30。

    输入

    输入仅一行,格式为yyyy-mm-dd的日期。

    输出

    输出也仅一行,格式为yyyy-mm-dd的日期

    样例输入

    2010-07-05

    样例输出

    2010-07-06

    提示

    闰年的标准:

    (1)普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)

    地球公转示意图

    (2)世纪年能被400整除的是闰年。(如2000年是闰年,1100年不是闰年)

    输入语句scanf("%d-%d-%d",&y,&m,&d)可以存储年,月,日.输出语句格式类似printf("%d-%02d-%02d ",year,month,day).

     


     1 #include<iostream>
     2 #include<stdio.h>
     3 int isLeapYear(int year);
     4 int main()
     5 {
     6     int y,m,d;
     7     int year,month,day;
     8     int monthCarrySave=0;
     9     int yearCarrySave=0;
    10     scanf("%d-%d-%d",&y,&m,&d);
    11     if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
    12         if(d==31){
    13             day=1;
    14             monthCarrySave=1;
    15         }
    16         else day=d+1;
    17     }
    18     else {
    19         if(m==2){
    20             if(d==28){
    21                 if(isLeapYear(y)){
    22                     day=1;
    23                     monthCarrySave=1;    
    24                 }  
    25                 else{
    26                     day=d+1; 
    27                 }
    28             }
    29             else if(d==29){
    30                 day=1;
    31                 monthCarrySave=1;
    32             }
    33             else{
    34                 day=d+1;
    35             }
    36         }
    37         else{
    38             if(d==30){
    39                 day=1;
    40                 monthCarrySave=1;
    41             }
    42             else {
    43                 day=d+1;
    44             }
    45         }
    46     }
    47     month=m+monthCarrySave;
    48     if(month>12){
    49         month=1;
    50         yearCarrySave=1;
    51     } 
    52     year=y+yearCarrySave;
    53     printf("%d-%02d-%02d
    ",year,month,day);
    54     return 0;
    55 }
    56 int isLeapYear(int year)
    57 {
    58     if(year%4==0&&year%100!=0||year%400==0)
    59         return 1;
    60     else return 0;
    61 }
  • 相关阅读:
    hex string 换转
    TX1 flash backup & restore
    Emgu CV
    sql点滴42—mysql中的时间转换
    sql点滴42—mysql中的数据结构
    thinkphp学习笔记9—自动加载
    thinkphp学习笔记8—命名空间
    thinkphp学习笔记7—多层MVC
    js常见执行方法window.onload = function (){},$(document).ready()
    安装64位php开发环境
  • 原文地址:https://www.cnblogs.com/dagon/p/4706121.html
Copyright © 2011-2022 走看看