Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Pascal, про дракона и головы богатыря.

18K
27 октября 2006 года
JohnZP
10 / / 27.10.2006
Помагите плз, учусь в школе, а училка загрузила.

Богатырь встретился в бою с 3-головм драконом. За первый час боя срубил 1 голову, но на её месте выросли 3 новых головы. За каждый последующий час богатырь срубывает на 1 голову больше чем за предыдущий, но у дракона на месте срубленной головы вырастали 3 новых. Сколько голово будет у дракона через определенныё промежуток времени.

Заранее спасибо!!!!
8.8K
27 октября 2006 года
Alximik
95 / / 24.10.2006
[QUOTE=JohnZP]Помагите плз, учусь в школе, а училка загрузила.

Богатырь встретился в бою с 3-головм драконом. За первый час боя срубил 1 голову, но на её месте выросли 3 новых головы. За каждый последующий час богатырь срубывает на 1 голову больше чем за предыдущий, но у дракона на месте срубленной головы вырастали 3 новых. Сколько голово будет у дракона через определенныё промежуток времени.

Заранее спасибо!!!![/QUOTE]
Ну паскаль я уже не помню толком. Но чето такое
 
Код:
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.
3.0K
28 октября 2006 года
Мerlin
267 / / 25.07.2006
вариант, если на месте КАЖДОЙ срубленной головы вырастает 3 новых
Код:
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.
8.8K
28 октября 2006 года
Alximik
95 / / 24.10.2006
на месте срубленной головы вырастали 3 новых

Т.е. на месте одной ИМХО.
6.0K
28 октября 2006 года
_Greezlee_
41 / / 17.09.2005
предлагаю свой вариант:
 
Код:
var
  h, count: byte;
begin
  write('Введите количество часов: ');readln(h);
  count := (h)*2+3;
  writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
  readln;
end.
8.8K
28 октября 2006 года
Alximik
95 / / 24.10.2006
[QUOTE=_Greezlee_]предлагаю свой вариант:
 
Код:
var
  h, count: byte;
begin
  write('Введите количество часов: ');readln(h);
  count := (h)*2+3;
  writeln('Всего голов по прошествии ',h,' часов: ',count,' штук');
  readln;
end.
[/QUOTE]
та не, так не интересно :)
3.0K
28 октября 2006 года
Мerlin
267 / / 25.07.2006
[QUOTE=Alximik]на месте срубленной головы вырастали 3 новых
Т.е. на месте одной ИМХО.[/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.
16K
31 октября 2006 года
PeaK
49 / / 02.10.2006
[QUOTE=Alximik]та не, так не интересно :)[/QUOTE]
Согласен.
Интереснее так
 
Код:
var
  h : integer;
begin
  write('Введите количество часов: ');readln(h);  
  writeln('Всего голов по прошествии ',h,' часов: ', h*2+3 ,' штук, а срублено - ', h*3);
  readln;
end.

Немного исправил и дополнил :)
Осталось пример рекурсивного вычисления количества голов на ассемблере привести :)
6.0K
31 октября 2006 года
_Greezlee_
41 / / 17.09.2005
Блин, а ведь неправильно решил. Ичтать задание надо внимательнее, я написал вариант где каждый час срубалась ОДНА голова, в задании каждый час на ОДНУ БОЛЬШЕ срубалось, вобщем вотновое решение.

Код:
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.


Вот такой вот вариант с рекурсией.
16K
31 октября 2006 года
PeaK
49 / / 02.10.2006
Да :) Я невнимателен.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог