寻找闰年的逻辑是如何运作的?
How does the logic for finding leap years work?
该程序是关于寻找闰年,但我无法理解其中的逻辑:
if(year%4==0 and not year%100==0 or year%4==0 and year%100==0 and year%400==0)
请帮助我理解逻辑(我知道!
、||
和&&
运算符是如何工作的(。
这段代码试图了解您提供的年份是否是闰年。在以下情况下,一年是闰年:
- 它可以被 4 整除,因此
year%4==0
而不是100,因此year%4==0 and year%100==0 and year%100==0
或者如果:
- 它可以被 4、100和400 整除,因此
year%400==0
如果添加几个括号,整个表达式将更具可读性:
if( (year%4==0 and not year%100==0) or (year%4==0 and year%100==0 and year%400==0) )
注意:整个表达式可能会简化。由于可被 400 整除的数字也可以被 4 和 100 整除,因此您可以写:
if( (year%4==0 and not year%100==0) or year%400==0 )
确定年份是否为闰年的算法如下:
- 每个能被四整除的年份都是闰年,除了能被100整除的年份,但如果这些百年正好能被400整除,那就是闰年。
例如,1700年、1800年和1900年不是闰年,但1600年和2000年是闰年。
相关文章:
- 函数何时会在c++中包含stack_Unwind_Resume调用
- Python中的for循环与C++有何不同
- 在C++中释放内存期间,迭代器与指针有何不同
- 寻找闰年的逻辑是如何运作的?
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- 类中的 C++ int 被设置为值,似乎不知从何而来
- -fvisibility-inline-hidden 与 gcc 中的 -fvisibility=hidden 有何不同
- 收益率和回报有何不同?
- 覆盖私有功能,它与受保护功能有何不同?
- Boost.Asio在引擎盖下运作
- 擦除删除成语的性能增益从何而来
- 无论代码长度如何,以下代码的内存要求有何不同?
- 这个简单的程序是如何运作的?
- "virtual"对C++析构函数有何影响?
- 如果我对"while"块发表评论,为什么程序会死机?其中的"yield"线有何影响?
- 系统时间从何而来?
- " return {...}; "在 C++11 中如何运作?
- 使用 constexpr 和 std::array 进行静态初始化来替换动态初始化的 std::vector 的闰年
- 如何填充闰年的元素
- make_index_sequence如何运作?