Buscar

Ponteiros e alocação dinâmica de memória - desafio

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Desafio 01
A série Fibonacci é representada por: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, etc. Essa série começa com os elementos 0 e 1 e, na sequência, os elementos posteriores representam a soma dos dois elementos anteriores.
Essa série foi descoberta pelo matemático Leonardo Fibonacci, a partir da observação do crescimento populacional de coelhos, e é conhecida como um exemplo clássico no aprendizado de linguagens de programação.
Com base nisso, elabore um algoritmo em C++ que leia um número pelo teclado e apresente a sequência Fibonacci até o total de elementos desse número. Crie um vetor do tamanho do número lido e armazene a sequência nesse vetor. Por fim, imprima o conteúdo do vetor e a posição de memória de cada elemento, conforme o seguinte modelo:
Entre o MAX: 15
0 0x2ca1a90
1 0x2ca1a94
1 0x2ca1a98
2 0x2ca1a9c
3 0x2ca1aa0
5 0x2ca1aa4
8 0x2ca1aa8
13 0x2ca1aac
21 0x2ca1ab0
34 0x2ca1ab4
55 0x2ca1ab8
89 0x2ca1abc
144 0x2ca1ac0
233 0x2ca1ac4
377 0x2ca1ac8
Declare o vetor que vai armazenar os elementos da série e a variável MAX por meio da alocação dinâmica de memória (new) e não se esqueça de liberar a memória no final da execução (delete).
Padrão de resposta esperado
1 #include <iostream>
2 
3 using namespace std;
4 
5 main(){
6 int *MAX= new int(0);
7 cout << "Entre o MAX: ";
8 cin >> *MAX;
9 
10 int anterior= 0;
11 int atual= 1;
12 int soma;
13 int *vetor = new int[*MAX];
14 
15 vetor[0]= anterior;
16 vetor[1]= atual;
17 for (int i= 2; i < *MAX; i++) {
18 soma= anterior + atual;
19 vetor[i]= soma;
20 anterior= atual;
21 atual= soma;
22 }
23 
24 for (int i= 0; i < *MAX; i++){
25 cout << vetor[i] << " " << &vetor[i] << endl;
26 }
27 
28 delete(MAX);
29 delete(vetor);
30 }

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando