HDU 1201 18岁生日
这里主要是纠结在闰年上面,没有生日的肯定是闰年的2月29,对吧,还有如果今年或18年后是闰年就要考虑,是在2月29前还是在2月29后
#include<stdio.h> int judge( int x ) { if( x % 400 == 0 || ( x % 4== 0 && x % 100 != 0 ) ) return 1; return 0; } int main( ) { int y,m,d,t; while(scanf( "%d",&t )!= EOF) { while( t-- ) { scanf( "%d-%d-%d",&y,&m,&d ); int sum = 0; if( judge( y ) && m == 2 && d == 29 && !judge( y + 18 ) ) { puts( "-1" ); continue; } for( int i = 0; i <= 18; ++i ) if( judge( y + i ) ) sum ++; if( judge( y + 18 ) && m <= 2 && d < 28 ) --sum; if( judge( y ) && m >= 3 ) --sum; printf( "%d\n",sum + 18 * 365 ); } } return 0; }
本人还是新手 ,转载请注明来自Lvsi‘s home