Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.04.2011, 19:27
Новичок

Отправить личное сообщение для neitrosha Посмотреть профиль Найти все сообщения от neitrosha
 
Регистрация: 20.03.2011
Сообщений: 18

Фибоначчиева система счисления. Вывод чисел
Как сделать, чтобы он выводил кроме коэффициетов еще и числовые значения?
число 31.
последовательность до него-
1>2>3>5>8>13>21.
берется число 21, оно уже автоматически попадает, так как меньше 31
остаток 10. 10 сравниваем с 13, число 13 отпадает. 10 сравниваем с 8, берем, остаток 2. и сравнивая с 2, получим остаток 0.

в итоге, если использовать 0 и 1:
1*21+0*13+1*8+0*5+0*3+1*2+0*1. т.е. 31=21+8+2
работает-то правильно. но хотелось бы, чтобы он выводил это еще и суммой, и чтобы в самом начале отображал саму последовательность

Код:
program fibo;

{$APPTYPE CONSOLE}

uses
  SysUtils;


    Var
        i,n,x,s,m,a:integer;
        f:string;
         p:boolean;
     begin
           Writeln('vvedite chislo');
           readln(x);
           p:=true;
           while x<>0 do
                 begin
                      n:=1;
                      s:=0;
                      i:=0;
                      while n<x do
                            begin
                              s:=s+n;
                              n:=s+n;
                              inc(i,2);
                              end;
                              if x<=s then
                                            begin
                                                x:=x-(n-s);
                                                dec(i,2);
                                                end
                                                else
                                                if x=n then
                                                x:=x-n
                                                else
                                                      begin
                                                        x:=x-s;
                                                        dec(i,1);
                                                      end;
                                                      if p then
                                                begin
                                                  a:=i;
                                                  f:='1';
                                                  for m:=2 to i do
                                                      begin
                                                      f[m]:='0';
                                                      f:=f+f[m];
                                                      end;
                                                  p:=false
                                                  end
                                                  else
                                                        begin
                                                        delete(f,a-i,1);
                                                        insert('1',f,a-i+1);
                                                        end;
                                                  end;
                                        writeln('pol chislo' ,f);
                                        readln;
end.
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод-вывод в Delphi 7 LGod Реализация, исходники, языки 5 01.06.2010 15:26
система счисления riddler Задачи 1 03.04.2010 16:31
Логический вывод Krieger Искусственный интеллект, нейронные сети 0 11.11.2009 18:30
вывод бинарного дерева незарегистрированный Математические алгоритмы 1 08.05.2007 06:15
система счисления Base 64 незарегистрированный Криптография 2 29.12.2006 10:35