NOI OJ 1.4 17 判断闰年 C语言

该博客介绍了一种使用C语言判断闰年的方法,重点在于理解公历闰年的规则:能被4整除但不能被100整除,或者能被400整除的年份是闰年。代码通过输入年份并进行条件判断,输出结果是Y表示闰年,N表示平年。

描述

判断某年是否是闰年。

输入

输入只有一行,包含一个整数a(0 < a < 3000)

输出

一行,如果公元a年是闰年输出Y,否则输出N

注意:公历纪年法中,能被4整除的大多是闰年,但能被100整除而不能被400整除的年份不是闰年, 能被3200整除的也不是闰年,如1900年是平年,2000年是闰年,3200年不是闰年。

注意事项这里很重要,不能光被4整除就判断它是否是闰年。

所以这里我们要考虑如果输入的年份能被100整除时,他同时也能被400整除才行

#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
int b=a%4;
int c=a%400;
int d=a%100;
if ((d!=0&&b==0)||c==0)
    printf("Y");
else
    printf("N");
return 0;
}

我这里的想法是两种情况成立的话,就能表示是闰年

1、a能被4整除,同时a不是100的倍数

2、a是400的倍数

两种情况用 || 连接,任何一种情况成立的话就是闰年。

当然此题

肯定还有其他的解法,这里只是讲一下我个人的思路(你也可以依次判断是否为400,100,4的倍数,我这里是并列使用的)

希望这篇文章能对刷题的同学有帮助

由于没有具体的引用内容,无法直接提供NOI竞赛C语言1.5章节里17到24部分的确切内容。不过一般来说,在NOI竞赛相关的C语言学习中,1.5章节可能会涉及到循环结构、简单算法等内容。 17 - 24部分可能会包含更多循环的应用案例,例如多重循环解决复杂的数学问题,像打印特定形状的图案,如金字塔、菱形等。代码示例如下,用于打印金字塔: ```c #include <stdio.h> int main() { int rows = 5; for (int i = 1; i <= rows; i++) { for (int j = 1; j <= rows - i; j++) { printf(" "); } for (int k = 1; k <= 2 * i - 1; k++) { printf("*"); } printf("\n"); } return 0; } ``` 也可能会涉及到循环嵌套下的数据处理,比如计算二维数组中元素的和。示例代码如下: ```c #include <stdio.h> #define ROWS 3 #define COLS 3 int main() { int arr[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; int sum = 0; for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { sum += arr[i][j]; } } printf("数组元素的和为: %d\n", sum); return 0; } ``` 还可能会有循环结合条件判断来实现特定逻辑,例如找出一组数中的最大值和最小值。示例代码如下: ```c #include <stdio.h> int main() { int numbers[] = {12, 45, 67, 23, 9, 55}; int length = sizeof(numbers) / sizeof(numbers[0]); int max = numbers[0]; int min = numbers[0]; for (int i = 1; i < length; i++) { if (numbers[i] > max) { max = numbers[i]; } if (numbers[i] < min) { min = numbers[i]; } } printf("最大值是: %d,最小值是: %d\n", max, min); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chd44

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值