Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 21:40   #1
RUSSTUDENT
Пользователь
 
Аватар для RUSSTUDENT
 
Регистрация: 18.01.2010
Сообщений: 26
По умолчанию Оператор цикла с постусловием (REPEAT)

Вычислить число Фибоначчи с номером К. Напечатать чётные числа Фибоначчи, следующие за вычисленным, сумма которых не больше А. (А и Кзадаются)

Если можно решите и с WHILE'ом
RUSSTUDENT вне форума Ответить с цитированием
Старый 18.01.2010, 22:59   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

576079457 ася, пиши
Базиля вне форума Ответить с цитированием
Старый 18.01.2010, 23:36   #3
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

вычисление N-го числа Фибоначчи.
Код:
program Fibo;
{$R+,Q+,S+,I+}
uses
      Math;
const
      Source = 'input.txt';
      Target = 'output.txt';
      Lmax   = 1001;
type
      T_Number = Array[0..Lmax] of Integer;

procedure One(var X: T_Number);
begin
       FillChar(X, SizeOf(X), 0);
       X[0] := 1;
       X[1] := 1;
end;

procedure Print(X : T_Number);
var
       I: Integer;
begin
       for I := X[0] downto 1 do
              Write(X[i]);
       WriteLn;
end;

procedure Add(A, B: T_Number; var C: T_Number);
var
       i, d: Integer;
begin
       FillChar(C, SizeOf(C), 0);
       d := 0;
       for i := 1 to max(A[0], B[0]) do
       begin
           Inc(d, A[i] + B[i]);
           C[i] := d mod 10;
           d := d div 10;
       end;
       C[0] := max(A[0], B[0]);
       if d > 0 then
       begin
          Inc(C[0]);
          C[C[0]] := d;
       end;
end;

var
      num, N: Integer;
      A, B, C: T_Number;
begin
      Reset(Input, Source);
      Rewrite(Output, Target);
      Read(N);
      One(A);
      One(B);
      num := 2;
      while num < N do
      begin
             Add(A, B, C);
             Inc(num);
             A := B;
             B := C;
      end;
      if N <= 2 then One(C);
      Print(C);
end.

Последний раз редактировалось Alex_FF; 18.01.2010 в 23:40.
Alex_FF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор цикла с постусловием (цикл REPEAT) 0001 Помощь студентам 3 18.01.2010 00:02
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24
создать одномерный массив вещественных чисел C(12) используя оператор цикла с постусловием Alex61 Помощь студентам 4 15.06.2009 19:11
Оператор цикла с предусловием While. Оператор цикла с пост условием Repeat McMilin Помощь студентам 7 11.11.2007 14:10