m0_73616746 2022-10-10 13:27 采纳率: 66.7%
浏览 37
已结题

C语言类最小公倍数问题

编程时遇到这个,不知道如何遍历每个月份(各个月份天数不同)
在国外,每月的 13 号和每周的星期 5 都是不吉利的。特别是当 13 号那天恰好是星期 5时,更不吉利。输入特定年份与元旦那天是星期几,请你从小到大依次输出当年所有13 号是星期 5 的月份。如果当年不存在星期 5 是 13 号的月份,就输出一行 "Luck"
开始觉得就是最小公倍数问题,后来发现月份不同天数不同,然后卡住了

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2022-10-10 14:28
    关注

    没想的这么复杂,蔡勒公式就可以,供参考:

    #include <stdio.h>
    int Get_Week(int y, int m, int d)
    {
        int week = -1;
        if (m == 1 || m == 2)  m += 12,  y--;
        week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1;
        return week;
    }
    int main()
    {
        int y, m, flg;
        printf("请输入(年份):");
        scanf("%d", &y);
        for (m = 1, flg = 0; m < 13; m++) {
            if (Get_Week(y, m, 13) == 5)
                printf(flg++ == 0 ? "%d" : " %d", m);
        }
        if (!flg)
            printf("Luck");
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据