Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K = 30:
#include
using namespace std;
int F(int x)
{
if (x < 3)
return 1;
else
return 2 * F(x - 1) + F(x - 2);
}
int main()
{
int i, k; i = 15;
cin >> k;
while (i > 0 && F(i) > k)
i = i - 1;
cout << i;
}
var i, k: integer;
function F(x:integer):integer;
begin if x < 3 then
F:= 1
else F:= 2*F(x-1) + F(x-2);
end;
begin
i := 15;
readln(K);
while (i > 0) and (F(i) > K) do
i:=i-1;
writeln(i);
end.
24
Объяснение:
var
i,j,k: integer;
function F(x:integer):integer;
begin if x < 3 then
F:= 1
else F:= 2*F(x-1) + F(x-2);
end;
begin
for k:=15 to 50 do
begin
i := 15;
while (i > 0) and (F(i) > K) do
i:=i-1;
write(i,' ');
end;
end.