As duas classes a seguir resolvem o mesmo problema, porém, a...
Próximas questões
Com base no mesmo assunto
Q304600
Programação
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
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