0+1 = 1
1*2 = 2 (или 1+1 = 2)
2+1 = 3
3*2 = 6
6*2 = 12
12*2 = 24
24+1 = 25
25*2 = 50
//PascalABC.NET 3.2 сборка 1318
//Вариант по формуле Бине
Var
n,fibn:real;
i:integer;
begin
readln(n);
if n<=0 then writeln('Не существует чисел Фиббоначи меньше 0')
else
begin
i:=0;
while fibn<n do
begin
fibn:=(power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5);
inc(i);
end;
writeln((power((1+sqrt(5))/2,i)-power((1-sqrt(5))/2,i))/sqrt(5)-1);
end;
end.
//В лоб
Var
sum,n,buf,fib0,fib1:integer;
function fibb(fib0,fib1:integer):integer;
begin
result:=fib0+fib1;
end;
begin
fib0:=0;
fib1:=1;
readln(n);
if n<=0 then
writeln('Не существует чисел Фиббоначи меньше 0')
else
begin
if fibb(fib0,fib1)>=n then sum:=0 else
begin
while fibb(fib0,fib1)<n do
begin
buf:=fib1;
fib1:=fibb(fib0,fib1);
fib0:=buf;
end;
sum:=fibb(fib1,fibb(fib0,fib1))-1;
end;
writeln(sum);
end;
end.
Пример ввода:
12
Пример вывода:
20
S&(D&M)=S&D&M это правильный ответ
Uses Crt;
procedure MinMax(a,b:integer; var min,max:integer);
begin
if a>b then begin max:=a; min:=b end
else begin max:=b; min:=a end
end;
var
x,y,mx,mn:integer;
begin
ClrScr;
Write('a,b= '); Read(x,y);
MinMax(x,y,mn,mx);
Writeln('min=',mn,', max=',mx);
ReadKey
end.
<em><u>Тестовое решение:</u></em>
a,b= 163 97
min=97, max=163
Что-то такое получилось, пиши в комменты если что не так:
var
a,b,k:longint;
begin
b:=1;
k:=0;
while b<10000 do
begin
read(a);
b:=b*a;
k:=k+1;
end;
writeln('Kol:',k);
writeln('Number:',b);
readln
end.