这个代码结果是3226,但是提示答案错误,请问8u们
哪有问题啊
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
long long a[10]={13,1,2,3,5,4,4,2,2,2};
long long ans=0;
void check(int day,int i,int j)
{
for(long long k=1;k<=day;k++){
long long res=0;
string date=to_string(i)+to_string(j)+to_string(k);
for(int i=0;i<=date.size()-1;i++){
if(date[i]) res+=a[date[i]-'0'];
}
if(date.size()+2==8){
res=res+2*13;
}else if(date.size()+1==8){
res=res+13;
}
if(res>50) ans++;
}
}
int main()
{
for(long long i=2000;i<=2023;i++){
if(i%400==0 || (i%4==0 && i%100!=0)){
for(long long j=1;j<=12;j++){
if(j==2)check(29,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0)check(30,i,j);
}
}else{
for(long long j=1;j<=12;j++){
if(j==2)check(28,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0)check(30,i,j);
}
}
}
int i=2024;
for(long long j=1;j<=4;j++){
if(j==4) check(13,i,j);
else if(j==2) check(29,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0) check(30,i,j);
}
cout<<ans<<endl;
return 0;
}

哪有问题啊
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
long long a[10]={13,1,2,3,5,4,4,2,2,2};
long long ans=0;
void check(int day,int i,int j)
{
for(long long k=1;k<=day;k++){
long long res=0;
string date=to_string(i)+to_string(j)+to_string(k);
for(int i=0;i<=date.size()-1;i++){
if(date[i]) res+=a[date[i]-'0'];
}
if(date.size()+2==8){
res=res+2*13;
}else if(date.size()+1==8){
res=res+13;
}
if(res>50) ans++;
}
}
int main()
{
for(long long i=2000;i<=2023;i++){
if(i%400==0 || (i%4==0 && i%100!=0)){
for(long long j=1;j<=12;j++){
if(j==2)check(29,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0)check(30,i,j);
}
}else{
for(long long j=1;j<=12;j++){
if(j==2)check(28,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0)check(30,i,j);
}
}
}
int i=2024;
for(long long j=1;j<=4;j++){
if(j==4) check(13,i,j);
else if(j==2) check(29,i,j);
else if(j%2!=0)check(31,i,j);
else if(j%2==0) check(30,i,j);
}
cout<<ans<<endl;
return 0;
}