(蓝桥杯第四届B组)高斯日记
2017-03-22 21:12
295 查看
题目标题: 高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
思路:经常出日期题啊,好好练,方镪找到一个好方法,特别简单,如下
在桌面建立一个txt文档,内容为
Interval, 必需的参数。它可以采用以下值:
d - 一年的天
m - 一年中的月份
y - 当年
yyyy - 年
w - 工作周
ww - 周
q - 季度
h - 小
m - 分
s - 秒
Number, 必需参数。它可以采取正和负的参数。
Date, 必需参数。变体或文字表示增加日期到间隔。
然后保存,改格式为vbs,然后再打开,就是结果啦!超级方便
dateadd是VBA的一个函数,它返回到指定时间间隔后的日期
注:这个题目将出生的那天算作第一天,因此结果要减一天。为了避免跳进这种坑,我们先将题目中给出的例子算一遍推断出生那天是否算为一天,再计算结果。
自己敲了代码,因此此题只需要填写结果,所以代码漏洞较多
答案 1799-07-16
1.从出生那天开始一直找到标记的那一天(题目中给出的是8113)
2.逆向思维,从标记的那一天开始,不断减去经历过的年头,然后当减去的结果为0时,就是要输出的日期
代码:
大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
思路:经常出日期题啊,好好练,方镪找到一个好方法,特别简单,如下
在桌面建立一个txt文档,内容为
DateAdd(interval,number,date)
Interval, 必需的参数。它可以采用以下值:
d - 一年的天
m - 一年中的月份
y - 当年
yyyy - 年
w - 工作周
ww - 周
q - 季度
h - 小
m - 分
s - 秒
Number, 必需参数。它可以采取正和负的参数。
Date, 必需参数。变体或文字表示增加日期到间隔。
然后保存,改格式为vbs,然后再打开,就是结果啦!超级方便
dateadd是VBA的一个函数,它返回到指定时间间隔后的日期
注:这个题目将出生的那天算作第一天,因此结果要减一天。为了避免跳进这种坑,我们先将题目中给出的例子算一遍推断出生那天是否算为一天,再计算结果。
自己敲了代码,因此此题只需要填写结果,所以代码漏洞较多
答案 1799-07-16
1.从出生那天开始一直找到标记的那一天(题目中给出的是8113)
2.逆向思维,从标记的那一天开始,不断减去经历过的年头,然后当减去的结果为0时,就是要输出的日期
代码:
#define _CRT_SBCURE_MO_DEPRECATE #include<iostream> #include<stdlib.h> #include<stdio.h> #include<cmath> #include<algorithm> #include<string> #include<string.h> #include<set> #include<queue> #include<stack> #include<functional> using namespace std; const int maxn = 100 + 10; const int INF = 0x3f3f3f3f; int yy, mm, dd; int sum; int day1[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//平年 int main() { yy = 1777; mm = 4; dd = 30; sum = 8113; while (sum > 365) {//减去整年数 sum -= 365; yy++; if (yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0) {//闰年 sum--; } } mm++; for (int i = 4; i < 12; i++) {//当前年剩下的天数 if (sum <= day1[i]) { printf("1 %d-%d-%d", yy, mm, sum); system("pause"); return 0; } else { sum -= day1[i]; mm++; } } if (sum > 0) {//新一年 yy++; mm = 1; for (int i = 0; i < 4; i++) { if (sum <= day1[i]) { printf("2 %d-%d-%d", yy, mm, sum); system("pause"); return 0; } else { if (i == 1 && yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0) {//闰年 sum -= day1[i] + 1; mm++; } else {//平年or不是二月 sum -= day1[i]; mm++; } } } } printf("3 %d-%d-%d", yy, mm, sum); system("pause"); return 0; }
相关文章推荐
- 第四届蓝桥杯 高斯日记
- 第四届 蓝桥杯C/C++ B组 第1题高斯日记
- 第四届蓝桥杯【省赛试题1】高斯日记
- 高斯日记-第四届蓝桥杯c/c++B组
- 2013年第四届蓝桥杯省赛C++B组——1、高斯日记
- 第四届蓝桥杯值之高斯日记
- 蓝桥杯第四届预赛1高斯日记
- 高斯日记-2013年第四届蓝桥杯软件大赛预赛第一题。
- “蓝桥杯”第四届本科B组预赛试题: 高斯日记
- “蓝桥杯”第四届本科B组预赛试题: 高斯日记
- 山东省第四届蓝桥杯 ///题目标题: 高斯日记//c/c++组
- 第四届蓝桥杯C++A组——高斯日记
- 蓝桥杯 第四届C/C++预赛真题(1) 高斯日记(数学题,年份处理)
- 蓝桥杯结果填空——高斯日记
- 2013第三届蓝桥杯C/C++本科预赛1 高斯日记
- 第四届_高斯日记
- 2012年蓝桥杯预赛题-高斯日记
- 高斯日记 - 蓝桥杯
- 蓝桥杯高斯日记
- 蓝桥杯 高斯日记