zoukankan      html  css  js  c++  java
  • 经典算法详解(4)计算一年中的第几天

    题目:编程实现输入某年某月某日,计算这一天是这一年的第几天:

     1 #include<iostream>
     2 
     3 
     4 using namespace std;
     5 
     6 int getDays(int year, int month, int day) {
     7     int days_of_month[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//一月份加的天数为0
     8     //判断平年闰年,平年二月28天,闰年多一天
     9     if ((year % 4 == 0) && (year & 100 != 0) || (year % 400 == 0)) {
    10         days_of_month[2] = 29;
    11     }
    12     else {
    13         days_of_month[2] = 28;
    14     }
    15 
    16     //参数有效性检查
    17     if (month < 1 || month>12 || day<0 || day>days_of_month[month]) {
    18         return -1;
    19     }
    20 
    21     int Days=0;
    22     for (int i = 0; i < month; i++) {//不能int i=1,这样在一月时也会进行一次循环
    23         Days += days_of_month[i];
    24     }
    25     Days += day;    //加上当月的天数
    26     return Days;
    27 }
    28 int main(int argc, char *argv[]) {
    29     cout << getDays(2015, 12, 2);
    30     getchar();
    31     return 0;
    32 }

    注意:不要忘了参数检查。

  • 相关阅读:
    HDU.2899.Strange fuction(牛顿迭代)
    BZOJ.3771.Triple(母函数 FFT 容斥)
    树的实现(2)
    树的练习
    死锁问题
    进程的三种状态
    线程的同步与实现
    进程间通信详解
    进程和线程以及它们的区别
    https协议
  • 原文地址:https://www.cnblogs.com/ys99/p/9196453.html
Copyright © 2011-2022 走看看