关于 ARTS 的释义 —— 每周完成一个 ARTS:
● Algorithm: 每周至少做一个 LeetCode 的算法题
● Review: 阅读并点评至少一篇英文技术文章
● Tips: 学习至少一个技术技巧
● Share: 分享一篇有观点和思考的技术文章
如何判断是否为闰年?
阳历和阴历中有闰日的年份,或阴阳历中有闰月的年份。如公历2020年为闰年,全年366天;农历庚子年(2020年)为闰年,闰四月小,该月只有芒种,无中气,全年13个月。伊斯兰教历1428年(公历2007——2008),全年366天为闰年。
1582年以来公历的置闰规则:
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
—百度百科
总而言之,言而总之 ,能被4整除,但不能被100整除的年份为闰年;
能被100整除,且必须能被400整除的年份才为闰年。
条件判断语句。(一个if…else…)
就是通过以下逻辑/算法实现该问题:
- 普通年份: 能被4整除,但不能被100整除的年份为闰年;
- 世纪年份: (当年份为 整百倍时)能被100整除,且必须能被400整除的年份才为闰年。
闰年是指公历年份中有366天的年份。判断一个年份是否为闰年可以根据以下规则:如果该年份能被4整除,但不能被100整除,则是闰年。 如果该年份能被400整除,则也是闰年。 其他情况下,该年份不是闰年。
简单流程描述: 一个简单的判断闰年的流程:
- 开始
- 输入年份
- 如果年份能被400整除,则跳到步骤6
- 否则,如果年份能被4整除且不能被100整除,则跳到步骤6
- 否则,年份不是闰年,跳到步骤8
- 年份是闰年 ,
跳到步骤8- 年份不是闰年
- 结束
具体实现如下:
#include
// 自定义函数:判断是否后为闰年
// name : isLeapYear
// para : year
int isLeapYear(int year){
// 核心算法:
// 1.该年份是4的整数倍,但不是100的倍数
// 2. 该年份是100的倍数,且必须是400的倍数
// 或者说,当年份为百整数时,该年份必须为100的整数倍
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
// 此时,我们就返回 1 说明是ture,也就是说 该年份是闰年
return 1;
} else {
// 反之,就返回0
return 0;
}
// 自定义函数结束
}
// 主函数
iint main(){
int year;
printf("请输入你要判断的年份:");
scanf("%d", &year);
if( isLeapYear(year) ){
printf("%d is leap year,thanks!\n", year);
} else {
printf("%d is not leap year,sorry!\n", year);
}
return 0;
}
// 可以将自定义函数中的 return 1 改为 flag=1
// 做类似的判断,思维逻辑类似于way1
//
//
逻辑运算符&& ||
&&
逻辑与在使用时,前后都须判断执行
||
逻辑或在使用时,若判读前者为否,则直接输出结果,不会再执行||
后面的判断条件,
&& > ||