PTA 7-41 计算年初总天数
编程序实现:输入一个年份,求出从公元1年1月1日到这一年的1月1日总共有多少天,限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法。格里高利历法的置闰规则是400年97闰,也可以概括为:四闰百不闰,四百闰。
输入格式:
输入一个代表年份的正整数。
输出格式:
输出总天数,最后换行。
输入样例:
2021
输出样例:
737791
代码:
#include<stdio.h>
int main()
{
int year, leap_year, total_day;
scanf("%d", &year);
year -= 1; //从公元1年1月1日开始, 年份减去1
leap_year = year / 4 - year / 100 + year / 400; //求出有多少闰年
total_day = leap_year * 366 + (year - leap_year) * 365 + 1; //闰年乘以366,不是闰年乘以365求总天数
printf("%d\n", total_day); //输出总天数
return 0;
}
解题思路:
step1:年份分为闰年和不是闰年,计算闰年的次数
step2:闰年的乘以(*366),不是闰年(*365)求总天数
归属知识点:
运算符的优先级