![]() |
|
|
#1
|
|||
|
|||
Помогите, не могу решить в Delphi задачку Число в любой системе исчисления разлогается по степенях основы системы исчисления, например,10101(2)=2^4+2²+2º=2(10),это же число в системе исчисления Фибоначи:10101(f)=f6+f4+f2=8+3+1=12(10). Описать разные обьекты для перевода одного числа, записанного последовательностью 0 и1 (0 и 1 не должны стоять рядом) в 10-тичную систему исчисления с двоичной и системы Фибоначи P.S. Просто не умею описать в Delphi, в Паскале такую задачу решила... |
|
#2
|
||||
|
||||
|
Выкладывай решение на паскале, переписать под Delphi тебе поможем.
|
|
#3
|
|||
|
|||
|
program des;
const n=20; var x:string; d,l,i,R:word; f:array[1..n] of word; function dv (y:string):real; var n,i,j:word; d,m:real; begin n:=length(y); m:=0; for i:=n downto 1 do if copy(y,i,1)='1' then begin d:=0.5; for j:=0 to n-i do d:=d*2; m:=m+d; end; dv:=m; end; function x11(y:string):byte; var i:word; begin x11:=0; for i:=1 to length(y)-1 do if copy (y,i,2)='11' then x11:=1; end; begin f[1]:=1; f[2]=2; for i:=3 to n do f[i]:=f[i-1]+f[i-2]; write ('cislo digital:'); readln(x); while x11(x)=1 do begin write('1 , 1 stoyat ryadom!Nelzya!'Cislo digital: ');readln(x); end; l:=length(x); R:=0; for i:=1 to l do if copy (x,i,1)='1' then begin d:=f[l-i+1]; R:=R+d; end; writeln('fibon.:',R); writeln('desatk.:',dv(x):0:0); readln; end. P.S. Нада описать в consol application Последний раз редактировалось Lera, 22.12.2006 в 18:18. |
|
#4
|
||||
|
||||
|
Так тут практически ничего не меняется
Код:
|