我母鸡啊!难啊难
2026-09-28 19:57:32
发布于:浙江
3阅读
0回复
0点赞
#include<iostream>
using namespace std;
int mm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
// 计算y,m,d的数位和
int sum_digit(int y,int m,int d){
int s=0;
while(y>0){s+=y%10;y/=10;}
while(m>0){s+=m%10;m/=10;}
while(d>0){s+=d%10;d/=10;}
return s;
}
// 日期+1天
void add_day(int &y,int &m,int &d){
// 更新二月天数
if((y%4==0&&y%100!=0)||(y%400==0)) mm[2]=29;
else mm[2]=28;
d++;
if(d>mm[m]){
d=1;
m++;
if(m>12){
m=1;
y++;
}
}
}
// 判断日期a是否 <= b
bool less_eq(int y1,int m1,int d1,int y2,int m2,int d2){
if(y1!=y2) return y1<y2;
if(m1!=m2) return m1<m2;
return d1<=d2;
}
int main(){
int y1,m1,d1,y2,m2,d2;
cin>>y1>>m1>>d1>>y2>>m2>>d2;
bool vis[50]={false}; // 数位和最多43
int cy=y1,cm=m1,cd=d1;
while(less_eq(cy,cm,cd,y2,m2,d2)){
int s=sum_digit(cy,cm,cd);
vis[s]=true;
add_day(cy,cm,cd);
}
int ans=0;
for(int i=0;i<50;i++){
if(vis[i]) ans++;
}
cout<<ans<<endl;
return 0;
}
这里空空如也








有帮助,赞一个