在线等,pascal问题,猜年龄和出生月份

来源:百度知道 编辑:UC知道 时间:2024/05/26 14:50:10
内容:

首先,用2乘以你出生的月份,再加上5,再乘以50,再加上你的年龄,再减去365,告诉计算机得数,计算机就会算出你几岁,哪个月出生。现在,计算机要考考你,它告诉你得数,你告诉它的年龄和出生月份,你会吗?
输入说明:

一个整数
输出说明:

输出两个整数 空格隔开
都不对啊,算了,随便选一个把。。。

就方程而言,解确实不止一组。但是要知道月份和年龄都是有限的,理论上只要你的年龄小于100,最终得到的这个计算结果都是准确的。

hds328705509穷举月份实在太过麻烦,而且没有考虑年龄的范围(比如一般人不可能活到500岁)。

分析:
设月份a,年龄b,则经过计算,得到的n=100*a+b-115
所以最终只要先加上115,然后个位十位表示年龄,百位千位表示月份。

以下代码已经测试通过
program jpr;
var
n:longint;
begin
readln(n);
n:=n+365;
n:=n-250;
writeln(n div 100,n mod 100);
end.

也还神奇啊,的确不止一组解。。。
var y,m,n:longint;
begin
readln(n);
for m:=1 to 12 do begin
y:=n+365-(2*m+5)*50;
if y>=0 then writeln(y,' ',m);
end;
end.

设月份为m,年龄为y 则得数s=
(2m+5)*50+y-365=100m+y-115
当y<100(m<=12)时:
var m,y,s:longint
begin
readln(s);
s:=s+115;
m:=s div 100;
y:=s-m*100;
writeln(y,m);
end.

。。。。。我不信这会只有一解?那计算机那么神?