算法1
按月份枚举
JAVA 代码
import java.util.*;
class Main{
static int[] month = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 打表
static int[] weekday = new int[7];
static int n;
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
n =sc.nextInt();
int days=0;
for(int year=1900;year<1900+n;year++){
for(int i=1;i<=12;i++){
weekday[(days+12) % 7]++;
days+=month[i];
if(i == 2){
if(year % 100 != 0 && year % 4 ==0 || year%400 == 0) days++;
}
}
}
for(int i=5,j=0;j<7;i=(i+1)%7,j++){
System.out.print(weekday[i]+" ");
}
}
}