1.高斯日记
大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数替代,比如:4210。后来人们知道,那个整数就是日期,他表示那一天是高斯出生后的第几天。这或许是一个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。在高斯发现的第一个重要定理的日记上标注着:5343。因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记本上标着:8113。
请你算出高斯获得博士学位的年月日。
提交答案的格式:yyyy-mm-dd,例如:1980-03-21
可利用Excel计算出答案
#include<iostream>
using namespace std;
bool isLeapYear(int y)
{
return (y%4==0&&y%100!=0)||(y%400==0);
}
int main(int argc,const char *argv[])
{
int y=1777;
int m=4;
int d=30;
for(int i=0;i<8112;++i)
{
d++;
if(m==12&&d==32)
{
y++;
m=1;d=1;
continue;
}
if((m==1||m==3||m==5||m==7||m==8||m==10)&&d==32)
{
m++;
d=1;
continue;
}
if((m==4||m==6||m==9||m==11)&&d==31)
{
m++;
d=1;
continue;
}
if(m==2&&isLeapYear(y)&&d==30)
{
m++;
d=1;
continue;
}
if(m==2&&!isLeapYear(y)&&d==29)
{
m++;
d=1;
continue;
}
}
cout<<y<<" "<<m<<" "<<d<<endl;
return 0;
}
2.马虎的算式
小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了,有一次老师出的题目是36×495=?他却抄成了396×45=?但结果却很戏剧性,他的答案竟然是对的!因为36495=39645=17820,类似这样的巧合情况可能还有很多,比如:27594=29754,假设 a b c d e代表1~9不同的5个数字(注意是各不相同的数字,但不含0),能满足形如:abcde=adbce这样的算式一共有多少种呢?
#include<iostream>
using namespace std;
int main(int argc,const char *argv[])
{
int ans=0;
for(int a=1;a<10;++a)
{
for(int b=1;b<10;++b)
{
if(b!=a)
for(int c=1;c<10;++c)
{
if(c!=a&&c!=b)
for(int d=1;d<10;++d)
{
if(d!=a&&d!=b&&d!=c)
for(int e=1;e<10;++e)
{
if(e!=a&&e!=b&&e!=c&&e!=d){
//ab*cde=adb*ce
if((a*10+b)*(c*100+d*10+e)==(a*100+d*10+b)*(c*10+e))
++ans;
}
}
}
}
}
}
printf("%d",ans);
return 0;
}
3.第39级台阶
小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?