• (HDU)1201 -- 18岁生日


    题目链接:http://vjudge.net/problem/HDU-1201

    分析:这个题目要注意的是输出-1是指这个人的生日在某个闰年的2月29日,那他只能过4的倍数的生日。

      还有一点要注意他的生日日期是在2月及以前还是3月及以后,这个和计算的起始年份有关。

      如果他的生日在1、2月,那么就以当前年为起始年份,如果今年是闰年就要加一了;

      如果他的生日在3月及以后,当前年是不是闰年没有影响,下一年作为起始年份考虑。

      然后循环分析18年是不是闰年...

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <cmath>
     4 #include <iostream>
     5 #include <algorithm>
     6 #include <string>
     7 #include <cstdlib>
     8 
     9 using namespace std;
    10 
    11 
    12 int main()
    13 {
    14     int t,y,m,d,i;
    15     scanf("%d",&t);
    16     while(t--)
    17     {
    18         int ans=0,flag=1;
    19         scanf("%d-%d-%d",&y,&m,&d);
    20         if(m==2&&d==29) flag=0;
    21         else
    22         {
    23             if(m>2)
    24             {
    25                 for(i=y+1;i<=y+18;i++)
    26                 {
    27                 if((i%4==0&&i%100!=0) || i%400==0)
    28                     ans+=1;
    29                     ans+=365;
    30                 }
    31             }
    32         else
    33             {
    34                 for(i=y;i<=y+17;i++)
    35                 {
    36                 if((i%4==0&&i%100!=0) || i%400==0)
    37                     ans+=1;
    38                     ans+=365;
    39                 }
    40             }
    41         }
    42         if(flag) printf("%d
    ",ans);
    43         else printf("-1
    ");
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    js查找字符串中重复的子字符串
    未知盒子宽高使盒子垂直水平居中
    标准盒模型和怪异盒模型的差异
    Vue练习(跑马灯效果)
    node后端中MVC与前端中的MVVM之间的区别
    ES6中对Promise解析
    ES6中对箭头函数的使用
    ES6对map解析
    ES6中对Set解析
    ES6解构赋值全了解
  • 原文地址:https://www.cnblogs.com/ACDoge/p/6133186.html
Copyright © 2020-2023  润新知