Faça um programa que imprima a sequência de Fibonacci. Ou seja, 011235813...
Soluções para a tarefa
Boa noite!!
Existe duas maneiras de fazer esse programa, um utilizando recursos básicos de C, como um for e algumas variáveis auxiliares e outro utilizando a Recursividade (feita com funções). Apresentarei as duas soluções em anexo.
Primeira solução: Definindo que 1º termo da sequência começa em 1, pedimos que o usuário entre com o n-ésimo termo utilizamos esse termo como limite para nosso for (no programa a variável t representa o n-ésimo termo). Dentro do for calcula-se a soma do anterior (defino como 0) e do próximo termo (definido como 1). Obtendo a soma a variável anterior recebe o termo "próximo" e o termo próximo recebe o valor atual da soma e isso acontece n vezes (ou t vezes). Há também a impressão de cada termo calculado (utiliza-se a variável anterior para printar ao invés de soma pois fizemos as trocas delas, explicado acima).
Segunda solução (mais bonita e prática): Nesta solução iremos utilizar a Recursividade. Nela iremos criar uma função que calcula os termos de Fibonacci. Iremos digitar o n-ésimo termo e para printar todos os termos, iremos utilizar o recurso de for novamente, onde dentro do for chamamos a função fib. Na função fib tentamos calcular o t-ésimo termo, porém não temos todos os termos anterior como t-1, t-2,..., t-(t+1) que é necessário para calcular t-ésimo. Assim chamamos a função novamente para x = x-1, e novamente não temos x-2, chamamos a função novamente até cairmos na condição em que x == 1 (onde definido no if sabemos o valor de t=1 e t=2). Logo a partir disso, é calculado termo a termo e devolvido para função main e impressa para o usuário.
OBS: Para não confundir, t e x são os mesmos números, porém em variáveis diferentes. A função fib recebe uma cópia de t (quando chamamos ela) e armazena na variável x.
Qualquer dúvida, entre em contato. Bons estudos!