计算两个日期之间的天数最有效的方法是什么?基本上我是在问我们如何实现我们最喜欢的日期时间库.
当我每4年进行1次迭代时,我很快就实现了一个~O(n)的解决方案.(下面附有代码)
我被一个介绍解决问题的计算机课程的问题要求实现这个,但是他们只是每天迭代而不是每4年一次.所以我不满足于那个解决方案并提出了下面的解决方案.但是,是否有更有效的解决方案?如果是这样,他们如何实现它?
#include <iostream>
using namespace std;
#define check_leap(year) ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0)))
#define debug(n) cout << n << endl
int get_days(int month, bool leap){
if (month == 2){
if (leap) return 29;
return 28;
} else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == …
Run Code Online (Sandbox Code Playgroud) 如何%
使用 Python计算 C %
?两者之间的区别在于它们处理否定论点的方式。
在这两种语言中, 的%
定义方式使这种关系(//
整数除法)成立:
a // b * b + a % b == a
Run Code Online (Sandbox Code Playgroud)
但是a // b
C 和 Python 中的舍入不同,导致a % b
.
例如,在 C 中(其中整数除法仅/
使用int
操作数)我们有:
int a = 31;
int b = -3;
a / b; // -10
a % b; // 1
Run Code Online (Sandbox Code Playgroud)
在 Python 中:
a = 31
b = -3
a // b # -11
a % b # -2 …
Run Code Online (Sandbox Code Playgroud)