我对自己的代码感到困惑。这个问题来自train.usaco.org:Friday The Thirteen。
这是一个目标:也就是说,本月13日的星期五是否比一周中的任何其他日子少?要回答这个问题,请编写一个程序,计算每个月13日在一个给定的N年期间在周日,周一,周二,周三,周四,周五和周六登陆的频率。
这是我的代码:
/*
ID: erdemtu2
PROG: friday
LANG: C++
*/
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int horwuul(int month, int year){
if(month == 2)
return ((year % 4) || (!(year % 100) && ((year+300) % 400))) ? 28 : 29;
switch(month){
case 3:
case 5:
case 9:
case 11:
return 30;
break;
default:
return 31;
break;
}
}
int main() {
//freopen("friday.in", "r", stdin);
//freopen("friday.out", "w", stdout);
int a, i, j;
cin >> a;
if(a < 0) a = 0;
if(a > 400) a = 400;
int ans[7]={0};
//was int ans[7];
int q=0, month=0;
for(i = 0; i < a; i++)
for(j = 0; j < 12; j++){
ans[((q + 6) % 7)]++;
q = (q + horwuul(j, i)) % 7;
}
for(i = 0; i < 7; i++){
cout << ans[(i + 6) % 7];
cout << " ";
}
return 0;
}
预期
矿 是: - 输出:36 4233426 2293443 2293497 2293733 1996393719 -52161590 现在: - 产量:38 34 35 33 33 34 33
我错了什么?任何帮助都会很棒,感谢您的回复。
答案 0 :(得分:1)
每年从1月开始。您可以决定1月是0还是1,但您应该保持一致。