hdu1491 Octorber 21st (模拟问题)

来源:互联网 发布:山西大学网络管理系统 编辑:程序博客网 时间:2024/06/17 00:54

题目意思:

http://acm.hdu.edu.cn/showproblem.php?pid=1491

给出两个数,分别表示月和日,求出改天距离10.21的天数,如果就是10.21,输出

It's today!!
如果改天超过10.21,输出:

What a pity, it has passed!
题目分析:

直接模拟,先月后天,注意10月即可,见代码。


AC代码:

/**  *@xiaoran  *模拟  */#include<iostream>#include<cstdio>#include<map>#include<cstring>#include<string>#include<algorithm>#include<queue>#include<vector>#include<stack>#include<cstdlib>#include<cctype>#include<cmath>#define LL long longusing namespace std;const int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){    int m,d,t;    cin>>t;    while(t--){        cin>>m>>d;        if(m==10&&d==21){//It is today!            cout<<"It's today!!"<<endl;            continue;        }        if((m==10&&d>21)||m>10){            cout<<"What a pity, it has passed!"<<endl;            continue;        }        int sum=0;        for(int i=m+1;i<10;i++){//加上相差的月的天数            sum+=a[i];        }        if(m==10) sum+=21-d;//加上十月的21天        else{            sum+=a[m]-d;//加上本月剩余的天数            sum+=21;        }        cout<<sum<<endl;    }return 0;}


0 0
原创粉丝点击