题目描述
13 号又是一个星期五,那么 13号在星期五比在其他日子少吗?
为了回答这个问题,写一个程序,要求计算每个月的十三号落在周一到周日的次数。给出 n 年的一个周期,要求计算 1900 年 1 月 1 日至 1900+n−1 年 12 月 31 日中十三号落在周一到周日的次数。
这里有一些你要知道的:
1、1900 年 1 月 1 日是星期一。
2、4,6,11 和 9 月有 30 天,其他月份除了 2 月都有 31 天,闰年 2 月有 29 天,平年 2 月有 28 天。
3、年份可以被 4 整除的为闰年 ( 1992=4∗498 所以 1992 年是闰年,但是 1990年不是闰年 )。
4、以上规则不适合于世纪年。可以被 400 整除的世纪年为闰年,否则为平年。所以,1700,1800,1900,2100 年是平年,而 2000 年是闰年。
输入格式
一个正整数 n。
输出格式
依次输出周六、日、一、二、三、四、五在 13 日出现的次数。
输入输出样例
输入 #1
20
输出 #1
36 33 34 33 35 35 34
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] a = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
int[] b = new int[8];
int n = in.nextInt();
int t = 1;
for (int i = 1900; i < 1900+n; i++) {
if ((i%4==0 && i%100 != 0) || i%400 == 0) {
a[1] = 29;
} else {
a[1] = 28;
}
for (int j = 0; j < 12 ; j++) {
for (int k = 1; k <= a[j] ; k++) {
if (k == 13) {
b[t]++;
//continue;
}
t++;
if (t > 7 ) {
t = 1;
}
}
}
}
System.out.print(b[6]+" "+b[7]);
for (int i = 1; i <= 5; i++) {
System.out.print(" "+b[i]);
}
}
}
来源:CSDN
作者:아름다운 밤
链接:https://blog.csdn.net/qq_43457125/article/details/104118192