• 【C/C++】日期问题/算法笔记/入门模拟


    最近把算法竞赛入门经典的前半部分看完了,开始看算法笔记入门算法。
    看了前半部分的例题,很多是算法竞赛入门经典中出现过的,但是感觉这本书写的更适合初学者,而且真的很像考试笔记,通俗易懂。

    //日期问题
    #include <iostream>
    using namespace std;
    
    const int month[13][2] =  //第二维:0:非闰年,1:闰年
    {
       {0, 0},  //方便取
       {31,31}, //1
       {28,29}, //2
       {31,31}, //3
       {30,30}, //4
       {31,31}, //5
       {30,30}, //6
       {31,31}, //7
       {31,31}, //8
       {30,30}, //9
       {31,31}, //10
       {30,30}, //11
       {31,31} //12  
    };
    
    bool is_leap(int a)
    {
       if ( ((a % 100 != 0)&&(a % 4 == 0)) || (a % 400 == 0) )
       {
          return 1;
       }
       else return 0;
    }
    
    int main()
    {
       int time1, year1, month1, day1;
       int time2, year2, month2, day2;
       scanf("%d%d", &time1, &time2);
    
       if(time1 > time2) swap(time1, time2); //保证第一个日期小于第二个日期
       //printf("time1 %d
    time2 %d
    ", time1, time2);
    
       day1 = time1 % 100;
       time1 /= 100;
       month1 = time1 % 100;
       time1 /= 100;
       year1 = time1;
       //printf("%02d
    %02d
    %04d
    ", day1, month1, year1);
    
       day2 = time2 % 100;
       time2 /= 100;
       month2 = time2 % 100;
       time2 /= 100;
       year2 = time2;
    
       int cnt = 1; //计数器,用于计算两个日期之间的差日
       不设置为0设置为1是因为如果两个日期是连续的,规定它们之间的天数为两天。
    
       //对1的数据进行每日加加,直至等于2的数据。
       while ( year1<year2 || month1<month2 || day1<day2 )
       {
          day1++;
          // cnt++;
          if(day1 > month[month1][is_leap(year1)])
          {
             month1++;
             day1 = 1;
          }
          if(month1 > 12)
          {
             year1++;
             month1 = 1; 
          }
          cnt++;
       }
       cout << cnt << endl;
       //cout << is_leap(2020) <<endl;
    
       system("pause");
    }
    
  • 相关阅读:
    Java I/O(二 使用)
    Java 基本I/O的学习总结(一 是什么)
    设计模式(一)
    浏览器输入一个网址(发生的过程)
    final关键字的4种用法
    JavaScript(4)——闭包与this对象以及window对象
    JavaScript(3)—— 正则表达式
    JavaScript(2)——对象属性、原型与原型链
    JavaScript(1)——变量、函数声明及作用域
    构建分布式配置中心阿波罗(Apollo)
  • 原文地址:https://www.cnblogs.com/kinologic/p/14052956.html
Copyright © 2020-2023  润新知