寻找第N个闰年: 给出当前年份和N,求从当前年份开始的第N个闺年的年份。c语言
#include <stdio.h>
int main()
{
int year, n;
scanf("%d %d", &year, &n);
while (n > 0)
{
year++;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
n--;
}
}
printf("%d", year);
return 0;
}
#include<stdio.h>
void main()
{
int year;
printf("输入年份:");
scanf_s("%d", &year);
if (year % 4 == 0)
{
if (year % 100 == 0)
{
if (year % 400 == 0)
printf("%d 是闰年", year);
else
printf("%d 不是闰年”,year);
}
else
printf("%d 是闰年",year);
}
else
printf("%d 不是闰年", year);
return 0;
}
#include <stdio.h>
int is_leap_year(int year) {
/**
* 判断是否为闰年
* 非整百年:能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
* 整百年:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
**/
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
}
else {
return 0;
}
}
int find_nth_leap_year(int cur_year, int n) {
/**
* 查找从当前年份开始的第N个闰年的年份
**/
int leap_year_count = 0; // 记录已找到的闰年个数
int year = cur_year;
while (leap_year_count < n) {
if (is_leap_year(year)) {
leap_year_count++;
}
year++;
}
return year - 1; // 减1是因为最后一次找到闰年后year会又自增1
}
int main() {
int cur_year, n;
printf("输入当前年份:");
scanf("%d", &cur_year);
printf("输入要查找的第N个闰年:");
scanf("%d", &n);
int leap_year = find_nth_leap_year(cur_year, n);
printf("从%d年开始的第%d个闰年是:%d年\n", cur_year, n, leap_year);
return 0;
}