题目描述:
已知 2007 年 10 月 10 日,请求出 n 天后是几月几号
输入描述:
多组输入,每组输入为 1 行,为一个正整数 n (1 <= n <= 2000)
输出描述:
对于每组输入,输出格式为 yyyy-mm-dd,输出的值为 n 天后的日期
样例输入:
1
2
样例输出:
2007-10-11
2007-10-12
#include<iostream>
using namespace std;
int b(int);
int main()
{
int n,i,j;
int year,month,day,leap[2]={365,366};
int a[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
while(cin>>n)
{
n=n+282;
for(year=2007;n>=leap[b(year)];year++)
n-=leap[b(year)];
for(month=0;n>=a[b(year)][month];month++)
n-=a[b(year)][month];
day=n+1;
cout<<year<<"-";
if(month<9)
cout<<"0"<<month+1;
else
cout<<month+1;
cout<<"-";
if(day<10)
cout<<"0"<<day<<endl;
else
cout<<day<<endl;
}
return 0;}
int b(int x)
{
if(x%4==0&&x%100!=0||x%400==0)
return 1;
else
return 0;
}
如果网友搜索到类似的代码,不好意思,他们的代码会有一些小错误,本人的代码经过测试完全正确