- ID
- 913807
- Banca
- FCC
- Órgão
- DPE-SP
- Ano
- 2013
- Provas
- Disciplina
- Programação
- Assuntos
As duas classes a seguir resolvem o mesmo problema, porém, a ClasseB utiliza recursão e a ClasseA, não:
public class ClasseB {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Entre com o valor de n:");
int n = in.nextInt();
for (int i = 1; i <= n; i++) {
long f = teste(i);
System.out.println(f);
}
}
public static long teste(int n) {
if (n <= 2) {
return 1;
} else {
return teste(n - 1) + teste(n - 2);
}
}
}
import java.util.Scanner;
public class ClasseA {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Entre com o valor de n:");
int n = in.nextInt();
for (int i = 1; i <= n; i++) {
long f = teste(i);
System.out.println(f);
}
}
public static long teste(int n) {
if (n <= 2)
return 1;
long a=1;
long b=1;
long c = 1;
for (int i=3; i<=n; i++){
c=a+b;
b=a;
a=c;
}
return c;
}
}
Analisando as duas classes e refletindo sobre o uso de recursão é possível concluir que