该问题要求计算一周中每一天的第 13 天的数量。这是我的代码。
class CopyOffriday {
public static void main(String[] args) throws IOException {
BufferedReader f = new BufferedReader(new FileReader("friday.txt"));
int n1=Integer.parseInt(f.readLine());
int[] counter=new int[7];
int N=1900+n1-1;
int position=1; //first 13th is a Saturday
for(int i=1900; i<=N;i++){
for(int month=1; month<=12;month++){
if((i==1900)&&(month==1)) counter[position-1]++;
else if((i==N)&&(month==11)){
position+=2;
position%=7;
counter[position-1]++;
System.out.println(i+" "+month+" "+ position+" ");
break; }
else if((month==4)|| (month==6)||(month==8)||(month==11))
position+=2;
else if(month==2){
if((i%400==0)||((i%100!=0)&&(i%4==0)))
position+=1;
else
position+=0; }
else
position+=3;
if(position>7) position%=7;
counter[position-1]++;
System.out.println(i+" "+month+" "+ position+" ");
}
}
for(int x : counter){
System.out.print(x+" ");
}}
我真的很难过,因为我的逻辑给出了错误的答案。我所做的是获取额外的天数,即 31 天月 3 天,30 天月 2 天等,并将其添加到该位置。但它给出了错误的答案。
我的逻辑有什么问题。
我被困在这个简单的问题上感到非常沮丧。非常感谢所有帮助。
谢谢你!