高斯日记(c++实现) |
您所在的位置:网站首页 › 高斯是哪年出生的 › 高斯日记(c++实现) |
题目描述 大数学家高斯有个好习惯:无论如何都要记日记。 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢? 高斯出生于:1777年4月30日。 在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。 高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。 提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21 示例代码: #include using namespace std; int judge(int year) //判断闰年 { if((year%4==0&&year%100!=0)||year%400==0) { return 1; //是闰年 } else { return 0; //不是闰年 } } int main() { int year=1777; int month=4; int day=30; int months[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //月份的天数 int d; cin>>d; //输入高斯的日期 d--; //高斯出生于:1777年4月30日。他出生后的第一天也是1777年4月30日,即输入1的时候不需要进行下面的循环,所以先-1 while(d--) { day++; if(month==2&&day==28) { if (judge(year)==1) { months[1]=29; //闰年 } else { months[1]=28; } } if(day>months[month-1]) //日的数量比当前月份的日数量大则月进位 { month++; day=1; if(month>12) //月份到了一月,进一年 { year++; month=1; } } } printf("%04d-%02d-%02d\n",year,month,day); //这里是按照输出格式指定输出位数,%4d表示输出的整数占据4位 return 0; }注意:高斯出生日期是1777.4.30,高斯出生后的第一天也是1777.4.30。也就是输入日期为1的时候,它不参与下面的循环,直接输出高斯的出生日期。所以给日期-1,使它不进行循环。 然后二月份的赋值要注意,我之前把=写成了==,所以没有得到正确答案。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |