Boa noite.
Estou com um trabalho da facul que não consigo ver uma solução…Tenho o trecho de código abaixo que precisa de 1gb para alocar mas tenho que fazer ele rodar em 32mb e no final retornar a quantidade de números divisíveis por 7 tem em todo o array.
Segue o trecho em pseudocódigo
- int i, num[2^28];
- num[0] = num[1] = 1; // inicialização
- i=2;
- while (i < (2^28 - 1)) do
- num[i] = num[i/2]; // i/2 é truncado
- num[i+1] = num[i/2] + num[i/2+1];
- i = i + 2;
- num[2^28 - 1] = 1; // último elemento
Percebi que, na verdade, preciso só de metade do array para gerar todos os valores mas, mesmo assim, ainda fica em 128 mb, se não me engano, que é 4 vezes maior do que o que posso utilizar.
Se alguém souber como resolver ou tiver alguma idéia que seja eu agradeço.