蛤玮准备礼物
1878: 蛤瑋準備禮物
Description
蛤瑋的妹子要過生日了,經過千挑萬選,蛤瑋決定給妹子買一盒水彩鉛筆,然而賣多少個才合適呢.機智的蛤瑋決定數一數今天是妹子出生的第多少天,然后就買那么多根鉛筆.
給出蛤瑋妹子的生日和今天的日期,求蛤瑋一共需要買多少. 注意:生日當天算第0天.
Input
T(1<=T<=1000),表示數據組數.
每組數據一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤瑋所在時空的當前天的年月日. (1900<=y<=1000000, 1<=m<=12, 1<=d<=當月應有天數).輸入保證當前天在妹子生日之后.
Output
每組數據輸出一行,蛤瑋要買多少根鉛筆.
Sample Input
2 1995 10 24 1995 10 25 1996 1 9 1996 3 7Sample Output
1 58AC代碼:
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; bool year(int x){if(x%400==0||(x%4==0&&x%100!=0))return 1;else return 0; } int math(int y,int m){if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)return 31;else if(m==2)return year(y)?29:28;elsereturn 30; } int main() {int T;scanf("%d",&T);while(T--){int y1,m1,d1,y2,m2,d2;int num1,num2,sum;scanf("%d %d %d %d %d %d",&y1,&m1,&d1,&y2,&m2,&d2);num1=0;num2=0;sum=0;for(int i=1; i<m1; i++)num1+=math(y1,i);num1+=d1;for(int i=1; i<m2; i++)num2+=math(y2,i);num2+=d2;if(y1==y2){printf("%d\n",num2-num1);continue;}else{sum+=year(y1)?366-num1+num2:365-num1+num2;if((y2-1-(y1+1))>400)//400年一個循環{int flag_num=(y2-1-(y1+1))/400;//循環次數int flag_sum=0;//循環數值for(int i=y1+1; i<=y1+400; i++)flag_sum+=year(i)?366:365;sum+=flag_num*flag_sum;for(int i=y1+flag_num*400+1; i<y2; i++)sum+=year(i)?366:365;}else//不足400年{for(int i=y1+1; i<y2; i++)sum+=year(i)?366:365;}printf("%d\n",sum);}}return 0; }總結
- 上一篇: 构建ASP.NET MVC5+EF6+E
- 下一篇: 【开发环境专题一】Maven环境搭建