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

C语言类最小公倍数问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用