Правильный ответ: 4,5 Мбайта
Объяснение:
4718592 байт / 1024 = 4608 Кбайта
4608 Кбайт / 1024 = 4,5 Мбайта
Переведите из PascalABC в C++ var p3,h,p,p1: array[1..2000000] of int64; i,n,j,u,l,kf,x,o,p2:int64; begin u:=0; read(n,x);p2:=0;
Mari777 [180]
Объяснение: почти все компиляторы имеют ограничение по оперативной памяти, а программа требует ее в количестве Дохрена , потому пришлось использовать либо вектора либо динамичнские массивы(я выбрал динамические )
#include <iostream>
using namespace std;
int main()
{
long long *p = new long long[2000000];
long long *p1 = new long long[2000000];
long long *p3 = new long long[2000000];
long long *h = new long long[2000000];
long long n, u{0}, kf, x, o, p2{0};
cin >> n >> x; //n=1 x=2
for (long i = 0; i < n; i++)
cin >> h[i]; //=3
cin >> kf; //=5
for (long i = 0; i < kf; i++)
{
cin >> p[i];
if (p[i] == 1)
cin >> h[n++];
if (p[i] == 2)
p2++;
if (p[i] == 3)
{
long long l{0};
cin >> p3[u];
p3[u] += p2 + 1;
for (long long j = p2; j < p3[u] - 1; j++)
if (h[j] >= x)
l++;
u++;
cout << l << endl;
};
};
delete[] p, p1, p3, h;
}
Алгоритм может быть, например, таким. Если нужно вывести нулевое число Фибоначчи, выведем 1, иначе будем считать. Сохраним в переменную номер текущего числа Фибоначчи (изначально 1) и значения текущего и предыдущего элементов (в начале 1 и 1), затем в цикле будем пересчитывать значения элементов, увеличивая номер текущего элемента. Когда номер элемента совпадёт с нужным, выведем ответ.
Реализация (python 3):
n = int(input())
if n == 0:
print(1)
else:
prev, curr = 1, 1
i = 1
while i < n:
curr, prev = prev + curr, curr
i += 1
print(curr)
Запустив программу, можно узнать, что f10 = 89, f25 = 121393, а f40 = <span>165580141</span>
Это что за шифр?log без параметров не используется