----day13----

祖蕾玛. 祖蕾玛. 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

特殊日期

问题描述

对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 19001900 年 11 月 11 日至 99999999 年 1212 月 3131 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。

例如,20222022 年 1111 月 1313 日满足要求,因为 2+0+2+2=(1+1)+(1+3)2+0+2+2=(1+1)+(1+3) 。

请提交满足条件的日期的总数量。

答案提交

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

#include <stdio.h>
#include <stdlib.h>

int fun(int n){
  int sum=0;
  while(n){
    sum+=n%10;
    n/=10;
  }
  return sum;
}
int main(){
  int count=0;
  int i,j,year,month,days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
  for(year=1900;year<=9999;year++){
    if(year%4==0&&year%100!=0||year%400==0)
        days[2]=29;
    else
        days[2]=28;
    for(i=1;i<=12;i++){
       for(j=1;j<=days[i];j++){
         if(fun(year)==fun(i)+fun(j))count++;
     }
    }
  }
  printf("%d",count);
  return 0;
}

 

 

...全文
评论
收藏 已收藏
分享
返回顶部