首页 > 其他分享 >PTA:7-115 计算星期值

PTA:7-115 计算星期值

时间:2024-04-03 18:59:48浏览次数:46  
标签:星期 case 闰年 400 year PTA 115 printf break

作者 周文俊

单位 西南石油大学

编程序实现:输入一个年份,求出这一年的1月1日是星期几,要求使用全中文形式(如“星期六”)输出,并限定不能使用循环结构。假定从公元第一天开始,就实施格里高利历法,并且公元1年1月1日为星期一。格里高利历法的置闰规则是400年97闰,也可以概括为:四闰百不闰,四百闰。

输入格式:

输入一个代表年份的正整数。

输出格式:

输出中文星期值,最后换行。

输入样例:

2021

输出样例:

在这里给出相应的输出。例如:

星期五

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>
 
int main()
{
    int year;
    scanf("%d", &year);
 
    // 计算 1 月 1 日是星期几,公式为:
    // days = (year-1) + (year-1)/4 - (year-1)/100 + (year-1)/400;
    // 其中,days 是公元 1 年 1 月 1 日到输入年份的总天数,而加上
    // (year-1) 是为了排除掉公元元年的影响,因为公元元年的前一年就是公元前 1 年;
    // (year-1)/4 是为了加上所有普通闰年的天数,因为普通闰年是每 4 年一润,
    // 而最后一个闰年是公元前 4 年,也就是距离输入年份最近的一个闰年;
    // (year-1)/100 是为了减去所有世纪闰年的天数,因为世纪闰年是每 100 年一润,
    // 但是在此基础上每 400 年又多一个闰年,所以需要加上 (year-1)/400。
    int days = ((year - 1) + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400) % 7;
 
    // 根据余数判断星期几,分别输出中文星期值。
    switch (days) {
        case 0: printf("星期一\n"); break;
        case 1: printf("星期二\n"); break;
        case 2: printf("星期三\n"); break;
        case 3: printf("星期四\n"); break;
        case 4: printf("星期五\n"); break;
        case 5: printf("星期六\n"); break;
        case 6: printf("星期日\n"); break;
    }
 
    return 0;
}

标签:星期,case,闰年,400,year,PTA,115,printf,break
From: https://blog.csdn.net/2301_81508028/article/details/137255518

相关文章

  • PTA:7-117 求整数段和
    作者 杨起帆单位 浙大城市学院给定两个整数A和B,输出从A到B的所有整数以及这些数的和。输入格式:输入在一行中给出2个整数A和B,其中−100≤A≤B≤100,其间以空格分隔。输出格式:首先顺序输出从A到B的所有整数,每5个数字占一行,每个数字占5个字符宽度,向右对齐。最后在一行中按S......
  • PTA:7-118 N个数求和
    作者 陈越单位 浙江大学本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1a2/b2...给出N个有理数。题目保证所有分子和分母都在长整......
  • PTA数据结构第四章7-2 变身(八进制转成十进制)
    分数20作者 陈晓梅单位 广东外语外贸大学题目给出一个由18位八进制数字组成的序列,要求每六位转成一个十进制数并输出。输入格式:18位八进制数字组成的序列。输出格式:输出转换后的三个十进制数,以空格分隔,行末不能有空格。输入样例:000023452230567134输出样例:......
  • pta 1013 数素数
    013数素数分数20全屏浏览切换布局作者 CHEN,Yue单位 浙江大学令 Pi​ 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM​ 到 PN​ 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 PM​ 到 PN​ 的所有素......
  • 输出全排列 pta python
    输入整数n(3<=n<=7),编写程序输出1,2,...,n整数的全排列,按字典序输出。输入格式:一行输入正整数n。输出格式:按字典序输出1到n的全排列。每种排列占一行,数字间无空格。输入样例:在这里给出一组输入。例如:3输出样例:在这里给出相应的输出。例如:123132213231312321......
  • linux中防火墙设置(iptables & firewalld & ufw )
       iptables、firewalld和ufw都是Linux系统中常用的防火墙软件,它们之间的区别如下:   iptables:iptables是Linux系统中最原始、最基础、最底层的防火墙软件,它可以直接配置Linux内核中的网络规则,控制网络数据包的流动。由于iptables配置比较复杂,需要对网络协议和规则有......
  • 求最大公约数的方法---pta---N个数求和
    公约数,简单来讲,可以被两个数都整除的一个数。最大公约数,就是两个数的所有公约数中最大的那一个。求得方法有很多,比如://枚举法inta,b,t;cin>>a>>b;for(inti=1;i<=min(a,b);i++){if(a%i==0&&b%i==0){t=i;}}cout<<t;//辗转相除法:inta,b,t;cin>>a>>b;......
  • 《自动机理论、语言和计算导论》阅读笔记:p115-p138
    《自动机理论、语言和计算导论》学习第6天,p115-p138总结,总计24页。一、技术总结1.associativityandcomutativity(1)commutativity(交换性):Commutativityisthepropertyofanoperatorthatsayswecanswitchtheorderofitsoperandsandgetthesameresult.......
  • PTA R7-5 找最大的字符串
    R7-5找最大的字符串分数10入门全屏浏览切换布局作者 王秀单位 福州大学输入5个字符串,输出其中最大的字符串。输出格式:printf("Maxis:%s\n",);输入输出示例:括号内为说明,无需输入输出输入样例:peachpearmelonorangeberry输出样例:Maxis:pear #i......
  • PTA (指针和数组 )R7-2 在数组中查找指定元素
    R7-2在数组中查找指定元素分数10入门全屏浏览切换布局作者 王秀单位 福州大学输入一个正整数repeat(0<repeat<10),做repeat次下列运算:输入一个正整数n(1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则......