PTA 7-115 计算星期值
分数 10
作者 周文俊
单位 西南石油大学
编程序实现:输入一个年份,求出这一年的1月1日是星期几,要求使用全中文形式(如“星期六”)输出,并限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法,并且公元1年1月1日为星期一。格里高利历法的置闰规则是400年97闰,也可以概括为:四闰百不闰,四百闰。
输入格式:
输入一个代表年份的正整数。
输出格式:
输出中文星期值,最后换行。
输入样例:
2021
输出样例:
在这里给出相应的输出。例如:
星期五
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include <stdio.h>
int main()
{
int year, leap, days;
char weekdays[7][10] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
scanf("%d", &year);
year = year - 1; //上一年
leap = year / 4 - year / 100 + year / 400; //四闰-百不闰+四百闰
days = ( leap * 366 + ( year - leap ) * 365 + 1 ) % 7; //每周7天,余下的天数
printf("%s", weekdays[days]);
}
解题思路:
step1:求出闰年和平年
step2:求除每周的余数
归属知识点:
数组