02不吉利日期,noi练习题,小学生编程

2024-01-22 13:36

本文主要是介绍02不吉利日期,noi练习题,小学生编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

02:不吉利日期

总时间限制: 

1000ms

内存限制: 

65536kB

描述

在国外,每月的13号和每周的星期5都是不吉利的。特别是当13号那天恰好是星期5时,更不吉利。已知某年的一月一日是星期w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。(w=1..7)

输入

输入有一行,即一月一日星期几(w)。(1 <= w <= 7)

输出

输出有一到多行,每行一个月份,表示该月的13日是星期五。

样例输入

7

样例输出

1
10

提示

1、3、5、7、8、10、12月各有31天
4、6、9、11月各有30天
2月有28天

题目解析:

首先需要先读懂题目中各个变量的意义,输入,输出是什么。

本题中输入的为1月1日的星期,假设输入数字为2 ,则1月1日星期二。如果输入的数字为4,则表示的是1月1日星期四。

于是我们可以先写出一月份的日期及对应的星期,去找到题目要求当中的1月13日是否为星期五即可。

定义day为日,根据日的变化规律,为1到31,所以当我们写一月份的日期时,可以直接用循环语句中的i。

定义week为星期,根据星期的变化规律,当week==7的时候,下一个的值为week=1,若week不等于7的时候,例如为5,下一个值为6,可写成week++。

此知识点设计循环语句中输出两个变量。例如之前练习过的九九乘法表。

#include<bits/stdc++.h>
using namespace std;
int main(){int week;inr day;cin>>week;for(int i=1;i<=31;i++){day=i;cout<<"1月"<<i<<"日"<<"星期"<<week<<endl;if(week==7){week=1;} else{week++;}} return 0;} 

此时可以输出一月份的日期和对应的星期

现在我们想要去找一月的13号是不是星期五,加一个判断语句即可

if(week==5&&day==13){
cout<<"不吉利";
}

当我们写好了一月的时候,同理可以写2月的,3月的。

假设每一个月都有31天的时候,可以写成12个循环的形式

#include<bits/stdc++.h>
using namespace std;
int main(){int week=7;for(int j=1;j<=12;j++){for(int i=1;i<=31;i++){//cout<<j<<"月"<<i<<"日星期"<<week<<endl;if(i==13&&week==5){cout<<j<<"月不吉利"<<endl; } if(week==7){week=1;}else{week++;}}
}return 0;
}  

但是每个月份的天数不全都是31天,则需要利用数组

#include<bits/stdc++.h>
using namespace std;
int main(){int m[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int week=7;for(int j=1;j<=12;j++){for(int i=1;i<=m[j-1];i++){//cout<<j<<"月"<<i<<"日星期"<<week<<endl;if(i==13&&week==5){cout<<j<<"月不吉利"<<endl; } if(week==7){week=1;}else{week++;}}
}return 0;
}  

上述的方法是以每个月为单位,做出12个月,然后找到哪几个月满足不吉利日期。

还有一种方法是以年为单位,给出365天,去输出一年的第一天是1月1日星期日,第二天是1月2日星期一,一直到第365天。所以我们需要考虑的是week是1到7循环,但是日期是以每个月的天数发生变更。例如1月31日的下一个是2月1日,2月28日的下一个是3月1日。

我们依然做一个简单版本,假设每个月都有31天,则day这个变量和week写法类似,当day==31时,day的下一个值为1。

#include<bits/stdc++.h>
using namespace std;
int main(){int week=7;int day=1;int a=1;//月份 for(int i=1;i<=365;i++){cout<<a<<"月"<<day<<"日星期"<<week<<endl;if(day==31){day=1;a++; }	else{day++;}if(week==7){week=1;}else{week++;}}return 0;
} 

输出

之后我们依然需要考虑到每个月份天数不同的问题,和之前的方法一样,增加数组。

#include<bits/stdc++.h>
using namespace std;
int main(){int m[12]={31,28,31,30,31,30,31,31,30,31,30,31};int week=7;int day=1;int a=1;//月份 for(int i=1;i<=365;i++){//cout<<a<<"月"<<day<<"日星期"<<week<<endl;if(day==13&&week==5){cout<<a<<"月不吉利"<<endl; }if(day==m[a-1]){day=1;a++; }	else{day++;}if(week==7){week=1;}else{week++;}}return 0;
} 

简单课后总结,欢迎大家一起交流学习。

这篇关于02不吉利日期,noi练习题,小学生编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/633139

相关文章

springboot日期格式化全局LocalDateTime详解

《springboot日期格式化全局LocalDateTime详解》文章主要分析了SpringBoot中ObjectMapper对象的序列化和反序列化过程,并具体探讨了日期格式化问题,通过分析Spri... 目录分析ObjectMapper与jsonSerializer结论自定义日期格式(全局)扩展利用配置

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

C#反射编程之GetConstructor()方法解读

《C#反射编程之GetConstructor()方法解读》C#中Type类的GetConstructor()方法用于获取指定类型的构造函数,该方法有多个重载版本,可以根据不同的参数获取不同特性的构造函... 目录C# GetConstructor()方法有4个重载以GetConstructor(Type[]

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

dp算法练习题【8】

不同二叉搜索树 96. 不同的二叉搜索树 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3输出:5 示例 2: 输入:n = 1输出:1 class Solution {public int numTrees(int n) {int[] dp = new int

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow