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
浙公网安备 33010602011771号