题目标题: 高斯日记

来源:互联网 发布:android开发计算器源码 编辑:程序博客网 时间:2024/06/06 08:49


题目标题: 高斯日记


    大数学家高斯有个好习惯:无论如何都要记日记。


    他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210


    后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?


    高斯出生于:1777年4月30日。
    
    在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。


    高斯获得博士学位的那天日记上标着:8113   


    请你算出高斯获得博士学位的年月日。


提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21


请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。

参考答案:1799-07-16

 #include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
/*
判断闰年 
*/
bool isRunYear(int year){
if(year%4 == 0 && year%100 !=0 || year%400 ==0)
return true;
else
return false;
}
//判断一个月是否是30天
bool isdata30(int month){
if(month == 4 ||month == 6 ||month == 9|| month == 11)
return true;
else
return false;

//判断一个月是否是31天
bool isdata31(int month){
if(month == 1 ||month == 3 ||month == 5|| month == 7||month == 8||month == 10 ||month == 12)
return true;
else
return false;

int main(int argc, char** argv) {
int n;
cin>>n;
int year = 1777;
int month = 4;
int data = 30;
data-=1;
for(int i = 0;i < n;i++){
data +=1;
if(data == 29 && month == 2 && isRunYear(year) == false){
data = 1;
month += 1;
}
if(data == 30 && month == 2 && isRunYear(year) == true){
data = 1;
month += 1;
}
if(data == 31 && isdata30(month) == true){
data = 1;
month +=1;
}
if(data == 32 && isdata31(month) == true){
data = 1;
month +=1;
}
if(month == 13){
month = 1;
year+=1;
}
}
if(month < 10){
cout<<year<<"-"<<"0"<<month<<"-"<<data;
}
else
cout<<year<<"-"<<month<<"-"<<data;
return 0;
}
1 0
原创粉丝点击