Hiện tại tuổi cha đang LỚN HƠN hai lần tuổi con (tức là bằng tuổi con nhân 2 cộng với 1 số năm nữa):
tuổi con = x
tuổi cha = 2x + y (y>0)
Sau y năm nữa thì:
tuổi con = x + y
tuổi cha = 2x + 2y = 2(x+y) = 2 lần tuổi con
Như vậy, bài toán luôn có lời giải trong mọi trường hợp.
Có 2 cách giải Pascal cho bài toán này, cách thứ nhất là tính trực tiếp y bằng cách trừ tuổi cha cho 2 lần tuổi con, cách thứ 2 là dùng vòng lặp.
~~~~~~~~
CÁCH 1
~~~~~~~~
var
cha, con: integer;
begin
write('Tuoi con: '); readln(con);
write('Tuoi cha: '); readln(cha);
if (con<0) or (con*2>=cha) or (con+25>cha) then
begin
write('Tuoi cha va tuoi con khong dung voi de bai'); readln;
exit;
end;
write('Sau ',cha-con*2,' nam nua thi tuoi cha gap doi tuoi con'); readln;
end.
~~~~~~~~
CÁCH 2
~~~~~~~~
var
cha, con, sonam: integer;
begin
write('Tuoi con: '); readln(con);
write('Tuoi cha: '); readln(cha);
if (con<0) or (con*2>=cha) or (con+25>cha) then
begin
write('Tuoi cha va tuoi con khong dung voi de bai'); readln;
exit;
end;
sonam:=0;
while (con+sonam)*2 < cha+sonam do sonam:=sonam+1;
write('Sau ',sonam,' nam nua thi tuoi cha gap doi tuoi con'); readln;
end.