Alguém pode me ajudar eu estou digitando um número e apartir dele esta me dando uma sequência mas o que minha professora quer é que dê a posição tipo se tiver 1,4,5
a pessoa digitar 2 vai aparecer o número 4 e assim por diante alguém ajuda o enunciado da questão é esse…
5-Criar um programa que determine e mostre os n primeiros números da sequencia de Fibonacci,
onde n é fornecido pelo usuário.
Sabe-se que esta sequencia é infinita, e os seus números são definidos assim:
1º número = 1
2º número = 1
a partir do 3º, os números são obtidos em função da soma dos seus dois antecessores. Com isso,
teríamos uma sequencia assim: 1- 1- 2- 3- 5- 8- 13 ? 21 - …
[code]import java.util.*;
public class exercicio5 {
public static void main(String[] args) {
int a,b,n=0;
a=b=0;
Scanner dado = new Scanner(System.in);
System.out.print(“digite um numero”);
a = dado.nextInt();
//1000 de Limite do loop
while(a>0){
System.out.print(","+(a+b));
if(a>b)
b+=a;
else
a+=b;
}
primeiro comece pensando no problema do fibonacci. Como você consegue fazer a sequência funcionar? Você poderia fazer algo assim:
Scanner temp = new Scanner (System.in);
int n = temp.nextInt(), i = 0;
int anterior = 1, atual = 1, temp = 1;
System.out.print(anterior + " ");
while (i < n) {
System.out.print(atual + " ");
temp = atual; // guarda o valor anterior
atual += anterior; // pega o próximo número da sequência
anterior = temp; // recupera o número anterior
i++; // tinha esquecido de incrementar
}
não sei se isso está certo, escrevi sem testar… mas a ideia é mais ou menos essa, você ter duas variáveis que representem o número atual e o anterior e ir mexendo com elas.
daí quando você imprimir a sequência, você pode colocar uma condição no meio testando se a posição que você escolheu é igual à que está na iteração do laço… se for é a posição, imprime o número, é só adaptar o método/bloco de código
dei uma alterada no seu código é quase isso mais agora ele só ta guardando numero na frente testa ai???
[code]import java.util.*;
public class exercicio5{
public static void main(String args[]){
Scanner dado = new Scanner (System.in);
int n , i = 0;
int anterior = 1, atual = 1, temp = 1;
System.out.println(“digite”);
n = dado.nextInt();
System.out.print(anterior + “”);
while (i < n) {
System.out.print(atual + "");
temp = atual; // guarda o valor anterior
atual += anterior; // pega o próximo número da sequência
anterior = temp; // recupera o número anterior
i++; // tinha esquecido de incrementar
}