openjudge 1.13 02 不吉利日期

题目来源:OpenJudge - 02:不吉利日期

总时间限制:1000ms  内存限制:65536k

题目描述:在国外,每月的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天

大体思路:for循环十二个月,判断哪个月31天30天,再for循环天数,若此时n==5&&j==13,输出i月份注意换行,注意1.1要单独拿出,因为题目给出的本身就是1.1的星期号,如果不特判一下,若你输入的是星期一,运行时就会变为星期二。

附代码:

#include<bits/stdc++.h>

using namespace std;

int main() {

int n;

cin>>n;

for(int i=1; i<=12; i++) {

if(i==1)

{

for(int j=2;j<=31;j++)

{

n++;

if(n==8)

{

n=1;

}

if(j==13&&n==5)

cout<<1<<endl;

}

}

if(i==3||i==5||i==7||i==8||i==10||i==12) {

for(int j=1; j<=31; j++) {

++n;

if(n>7||n<1) {

n=1;

}

if(j==13&&n==5) {

cout<<i<<endl;

}

}

} else if(i==4||i==6||i==9||i==11) {

for(int j=1; j<=30; j++) {

++n;

if(n>7||n<1) {

n=1;

}

if(j==13&&n==5) {

cout<<i<<endl;

}

}

} else if(i==2) {

for(int j=1; j<=28; j++) {

++n;

if(n>7||n<1) {

n=1;

}

if(j==13&&n==5) {

cout<<i<<endl;

}

}

}

}

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,140评论 0 2
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,210评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,584评论 0 9
  • #include #include<conio.h> //控制台数据输入输出的函数 #include<fstrea...
    黑键_阅读 4,969评论 0 1
  • 一说到经典肖像,我首先想到的就是伟大的肖像摄影大师Yousuf Karsh,他拍摄了很多传奇名人,像是爱因斯坦、丘...
    LikeAKid阅读 8,124评论 0 1

友情链接更多精彩内容