不吉利的日期

来源:互联网 发布:网站整站优化 编辑:程序博客网 时间:2024/04/27 17:40

题目描述

在国外,每月的 13 号和每周的星期 5 都是不吉利的。特别是当 13 号那天恰好是星期 5时,更不吉利。现在给你一个年份,请你从小到大依次输出当年所有13 号是星期 5 的月份。

输入描述:

输入包含多组数据,每组数据包含一个正整数year(2000≤year≤9999)。


输出描述:

对应每一组数据,输出所有符合条件的月份,月份之间用空格隔开。如果当年不存在13号是星期五的月份,就输出一行Luck。

输入例子:

200020012002

输出例子:

104 79 12
我的代码:

#include<stdio.h>int days(int y,int m,int d){    int day=0,i;    for(i=1;i<m;i++)    {        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)            day=day+31;        else if(i==2)        {            if((y%4==0 && y%100!=0) || y%400==0)                day=day+29;            else day=day+28;        }        else day=day+30;    }    return 365*(y-1)+((y-1)/4-(y-1)/100+(y-1)/400)+day+d;}int main(){    int y;    while(scanf("%d",&y)!=EOF)    {        int cnt=0,i;        for(i=1;i<=12;i++)        {            int t=days(y,i,13)%7;            if(t==5)            {                cnt++;                if(cnt>1) printf(" ");                printf("%d",i);            }        }        if(cnt==0) printf("Luck");        puts("");    }    return 0;}

原创粉丝点击