2020年1月30日 星期四

d041: 11219 - How old are you?

題目連結

解題思路:
date=(y1-y2)-(m1<m2)-(m1==m2&&d2>d1);
1.從(y1-y2)可以得知大概的年齡。而可能因為最新的天數未滿一年,需要減1,所以繼續判斷。
2.需要減一有兩種情況:第一是(m2>m1),第二是當同月份時(d2>d1)
3.所以把這兩個情況減掉即可

程式碼:
#include <stdio.h>
int main()
{
    int t;
    scanf("%d",&t);
    for(int i=1;i<=t;i++)
    {
        int d1,m1,y1,d2,m2,y2,date=0;
        scanf("%d/%d/%d",&d1,&m1,&y1);
        scanf("%d/%d/%d",&d2,&m2,&y2);
        date=(y1-y2)-(m1<m2)-(m1==m2&&d2>d1);
        printf("Case #%d: ",i);
        if(date<0)
            printf("Invalid birth date\n");
        else if(date>130)
            printf("Check birth date\n");
        else
            printf("%d\n",date);
    }
    return 0;
}

沒有留言:

張貼留言