• hdoj--1201--18岁生日(模拟)


    18岁生日

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 25552    Accepted Submission(s): 8131


    Problem Description
    Gardon的18岁生日就要到了,他当然很开心,可是他突然想到一个问题,是不是每个人从出生开始,到达18岁生日时所经过的天数都是一样的呢?似乎并不全都是这样,所以他想请你帮忙计算一下他和他的几个朋友从出生到达18岁生日所经过的总天数,让他好来比较一下。
     

    Input
    一个数T,后面T行每行有一个日期,格式是YYYY-MM-DD。如我的生日是1988-03-07。
     

    Output
    T行,每行一个数,表示此人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
     

    Sample Input
    1 1988-03-07
     

    Sample Output
    6574
     

    Author
    Gardon
     

    Source
     

    Recommend
    JGShining   |   We have carefully selected several similar problems for you:  1205 1106 1215 1228 1234 
    这个人一定是活了十八年,18*365再加上活的闰年数
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int runnian(int x)
    {
    	if(x%400==0||(x%4==0&&x%100!=0))
    	return 1;
    	return 0;
    }
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	int y,m,d;
    	while(t--)
    	{
    		scanf("%d-%d-%d",&y,&m,&d);
    		int sum=365*18;
    		if(m==2&&d==29)
    		printf("-1
    ");
    		else
    		{
    			for(int i=y+1;i<y+18;i++)
    			if(runnian(i))
    			sum++;
    			if(runnian(y))
    			if(m<=2) sum++;
    			if(runnian(y+18)&&(m>2))
    			sum++;
    			printf("%d
    ",sum);
    		}
    	}
    	return 0;
    } 


  • 相关阅读:
    Datediff的使用(统计本日,昨日,本周,本月)
    数据库之查询语句
    数据库之表关系
    数据库中的数据类型
    数据库概念和基本操作
    IO模型
    并发编程之协程
    GIL与多线程(线程池与进程池,同步异步阻塞非阻塞)
    并发编程之多线程
    并发编程之多进程
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273524.html
Copyright © 2020-2023  润新知