RNG牛逼

题目描述

RNG在2018年10月20日给G2打败,HJ很伤心,但他看到弹幕里面的7777777时他就更加伤心,所以他就很讨厌7这个数字。WXS是个EDG的铁粉,他看到7777777的时候就很开心,他提出一个“好玩”的游戏,那就是他说出一个年月日然后求出这个日子到RNG失败回家的那一天一共过去几天,由于HJ很讨厌7所以HJ会把含7的年月日给删除。

#include"stdio.h"
#include"string.h"
int panduan(int n)//判断是否有7
{while(n){if(n%10==7){return 0;}n=n/10;}if(n==0)return 1;elsereturn 0;
}
int year1(int year)判断是否闰年
{if(year%400==0||(year%4==0&&year%100!=0))return 1;elsereturn 0;}
int main()
{int year,mouth,day;int data[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};int t,i,j,pyear,pmouth,pday;int n;while(~scanf("%d",&t)){while(t--){n=0;scanf("%d-%d-%d",&year,&mouth,&day);if((year!=2018))/*2018年单独判断 ,如果没此if则会执行一次循环。*/for(pyear=year; pyear<2018; pyear++){if(!(panduan(pyear)==1)){mouth=1;day=1;continue;}if(year1(pyear)==1)data[2]=29;elsedata[2]=28;for(pmouth=mouth; pmouth<13; pmouth++){if(!(panduan(pmouth)==1)){day=1;continue;}if(mouth!=1)mouth=1;for(pday=day; pday<=data[pmouth]; pday++){if(day!=1)day=1;if(!(panduan(pday)))continue;n++;}}}if(year1(pyear)==1)data[2]=29;elsedata[2]=28;//   mouth=1;//   day=1;//   printf("data[2]=%d\n",data[2]);if(mouth!=10)//判断是否为10月 for(pmouth=mouth; pmouth<10; pmouth++){if((panduan(pmouth)==0)){day=1;continue;}for(pday=day; pday<=data[pmouth]; pday++){day=1;/*如果没此语句,则2018-9-10的时候day永远不会为一,会是整个天数变少*/if((panduan(pday)==0))continue;n++;}}for(pday=day; pday<=20; pday++){if(!(panduan(pday)==1))continue;n++;}printf("%d\n",n);//  n=0;//  printf("%lld\n",n);}}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部