uses crt;
var i, t, h: integer;
begin
readln (t);
h:=3;
for i:=1 to t do begin
h:=h-i+3;
if (h<0) then h:=0;
end;
end.
Pascal, про дракона и головы богатыря.
Богатырь встретился в бою с 3-головм драконом. За первый час боя срубил 1 голову, но на её месте выросли 3 новых головы. За каждый последующий час богатырь срубывает на 1 голову больше чем за предыдущий, но у дракона на месте срубленной головы вырастали 3 новых. Сколько голово будет у дракона через определенныё промежуток времени.
Заранее спасибо!!!!
Богатырь встретился в бою с 3-головм драконом. За первый час боя срубил 1 голову, но на её месте выросли 3 новых головы. За каждый последующий час богатырь срубывает на 1 голову больше чем за предыдущий, но у дракона на месте срубленной головы вырастали 3 новых. Сколько голово будет у дракона через определенныё промежуток времени.
Заранее спасибо!!!![/QUOTE]
Ну паскаль я уже не помню толком. Но чето такое
Код:
Код:
program Pr;
uses
Crt;
var
i, t, d, h: Integer;
begin
Write('Введите число часов : ');
ReadLn(t);
h := 3;
WriteLn('Исходное положение: у дракона 3 головы');
for i := 1 to t do begin
d := 3*i; // Кол-во новых голов
h := h - i + d;
WriteLn(i:3, '-й час. Срубил : ', i:3, ' Выросло : ', d:4, ' Итого : ', h);
end
end.
uses
Crt;
var
i, t, d, h: Integer;
begin
Write('Введите число часов : ');
ReadLn(t);
h := 3;
WriteLn('Исходное положение: у дракона 3 головы');
for i := 1 to t do begin
d := 3*i; // Кол-во новых голов
h := h - i + d;
WriteLn(i:3, '-й час. Срубил : ', i:3, ' Выросло : ', d:4, ' Итого : ', h);
end
end.
Т.е. на месте одной ИМХО.
Код:
var
h, count: byte;
begin
write('Введите количество часов: ');readln(h);
count := (h)*2+3;
writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
readln;
end.
h, count: byte;
begin
write('Введите количество часов: ');readln(h);
count := (h)*2+3;
writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
readln;
end.
Код:
var
h, count: byte;
begin
write('Введите количество часов: ');readln(h);
count := (h)*2+3;
writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
readln;
end.
h, count: byte;
begin
write('Введите количество часов: ');readln(h);
count := (h)*2+3;
writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
readln;
end.
та не, так не интересно :)
Т.е. на месте одной ИМХО.[/QUOTE]Скорей всего так.
Код:
program Pr;
uses
Crt;
var
i, t, h: Integer;
const cg = 3; // нач. число голов
begin
Write('Введите число часов : ');
ReadLn(t);
h := cg;
WriteLn('Исходное положение: у дракона ', h, ' головы');
for i := 1 to t do begin
if h <= i then begin
WriteLn(i:3, '-й час. Срубил : ', h:3, ' Итого : 0. Бой закончен.');
break; end
else begin
h := h - i + 3;
WriteLn(i:3, '-й час. Срубил : ', i:3, ' Выросло : 3. Итого : ', h);
end;
end;
end.
uses
Crt;
var
i, t, h: Integer;
const cg = 3; // нач. число голов
begin
Write('Введите число часов : ');
ReadLn(t);
h := cg;
WriteLn('Исходное положение: у дракона ', h, ' головы');
for i := 1 to t do begin
if h <= i then begin
WriteLn(i:3, '-й час. Срубил : ', h:3, ' Итого : 0. Бой закончен.');
break; end
else begin
h := h - i + 3;
WriteLn(i:3, '-й час. Срубил : ', i:3, ' Выросло : 3. Итого : ', h);
end;
end;
end.
Согласен.
Интереснее так
Код:
var
h : integer;
begin
write('Введите количество часов: ');readln(h);
writeln('Всего голов по прошествии ',h,' часов: ', h*2+3 ,' штук, а срублено - ', h*3);
readln;
end.
h : integer;
begin
write('Введите количество часов: ');readln(h);
writeln('Всего голов по прошествии ',h,' часов: ', h*2+3 ,' штук, а срублено - ', h*3);
readln;
end.
Немного исправил и дополнил :)
Осталось пример рекурсивного вычисления количества голов на ассемблере привести :)
Код:
var
h, count: integer;
function GetCountHead(h: integer): integer;
begin
if h=0 then result := 3
else result := GetCountHead(h-1) + h*2;
end;
begin
write('Введите количество часов: ');readln(h);
count := GetCountHead(h);
writeln('По прошествии ',h,' часов у дракона оказалось ',count,' голов');
readln;
end.
h, count: integer;
function GetCountHead(h: integer): integer;
begin
if h=0 then result := 3
else result := GetCountHead(h-1) + h*2;
end;
begin
write('Введите количество часов: ');readln(h);
count := GetCountHead(h);
writeln('По прошествии ',h,' часов у дракона оказалось ',count,' голов');
readln;
end.
Вот такой вот вариант с рекурсией.
Да :) Я невнимателен.