Sequência de fibonacci

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;
}

}
}[/code]

daniferreira,

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

mais nao tem como usar o meu código pra fazer isso?

eu testei mais ta dando erro seu código o meu tava quase no jeito teria q arrumar uma coisinha masi nao sei o q é pra mostrar na posição

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  
    }  

}
}[/code]

tente isso.

[code] public static void main(String [] args){
int a=0,b=1,n=0,soma=0;
Scanner dado = new Scanner(System.in);
System.out.print(“digite um numero”);
n = dado.nextInt();
System.out.print(a+",");
System.out.print(b+",");
for(int i=2;i<n;i++) {
soma=a+b;
System.out.print(soma+",");
a=b;
b=soma;

	}[/code]
 
	}

Ele só não pode printar esse a do começo que tem valor 0
mas acho que com esse laço funciona