Questões Comentadas - Java
(Cesgranrio 2007) 60. Observe o fragmento do código JAVA a seguir:
public class prova {
public prova() {
}
public static int d(int x) {
return x*2;
}
public static int e(int x) {
return x*5;
}
public static int fn(int x) {
if (x<1)
return 0;
else
return 4+fn(x-1);
}
public static int g(int y) {
return 10+fn(y)+e(y)+d(y);
}
public static void main(String[] args) {
System.out.println(g(5));
}
}
A execução do método main apresentará a saída:
A) 65 B) 61 C) 54 D) 45 E) 10
Alguém arrisca a resposta? Respondam e apontem o porquê da resposta fazendo um sucinto esquema para a explicação. A resposta publico em breve
Type rest of the post here
public class prova {
public prova() {
}
public static int d(int x) {
return x*2;
}
public static int e(int x) {
return x*5;
}
public static int fn(int x) {
if (x<1)
return 0;
else
return 4+fn(x-1);
}
public static int g(int y) {
return 10+fn(y)+e(y)+d(y);
}
public static void main(String[] args) {
System.out.println(g(5));
}
}
A execução do método main apresentará a saída:
A) 65 B) 61 C) 54 D) 45 E) 10
Alguém arrisca a resposta? Respondam e apontem o porquê da resposta fazendo um sucinto esquema para a explicação. A resposta publico em breve
Type rest of the post here
Comentários
Método fn:
1a iteração
x = 5
x-1 = 4
4+(fn(4))
2a iteração
x = 4
x-1 = 3
4+(4+(fn(3)))
3a iteração
x = 3
x-1 = 2
4+(4+(4+(fn(2))))
4a iteração
x = 2
x-1 = 1
4+(4+(4+(4+(fn(1))))
5a iteração
x = 1
x -1 = 0
4+(4+(4+(4+(4+(fn(0)))))
6a iteração
x = 0 -> retorna 0
Resultado
4+4+4+4+4+0 = 20
Metodo e
5 * 5 = 25
Metodo d
5 * 2 = 10
Metodo g
10 + 20 + 25 + 10 = 65
Resposta: Letra A
01. 10 + fn(5) + e(5) + d(5)
02. 10 + (4 + fn(4)) + 5*5 + 5*2
03. 10 + (4 + (4 + fn(3))) + 25 + 10
04. 10 + (4 + (4 + (4+ fn(2)))) + 35
05. 45 + (4 + (4 + (4 + (4 + fn(1)))))
06. 45 + (4 + (4 + (4 + (4 + (4 + fn(0))))))
07. 45 + (4 + (4 + (4 + (4 + (4 + 0)))))
08. 45 + (4 + (4 + (4 + (4 + 4))))
09. 45 + (4 + (4 + (4 + 8)))
10. 45 + (4 + (4 + 12))
11. 45 + (4 + 16)
12. 45 + 20
13. 65
1º g(5)
10+fn(5)+e(5)+d(5)
10+fn(5)+ (5*5) + (5*2)
10+fn(5)+25+10
45+fn(5)
2º fn(5)
4+fn(4)
4+4+fn(3)
4+4+4+fn(2)
4+4+4+4+fn(1)
4+4+4+4+0
3º
45+16
Minha resposta 61...
4+4+fn(3) 4
4+4+4+fn(2) 3
4+4+4+4+fn(1) 2
4+4+4+4+4+0 1
Retifico para resposta 65 , percebi meu erro.
fn(0) = 0
fn(1) = 4 + fn(0) = 4
fn(2) = 4 + fn(1) = 4 + 4 = 8
fn(3) = 4 + fn(2) = 4 + 8 = 12
fn(4) = 4 + fn(3) = 4 + 12 = 16
fn(5) = 4 + fn(4) = 4 + 16 = 20
10 + 20 + 25 + 10 = 65
fn(0) = 0
fn(1) = 4 + fn(0) = 4
fn(2) = 4 + fn(1) = 4 + 4 = 8
fn(3) = 4 + fn(2) = 4 + 8 = 12
fn(4) = 4 + fn(3) = 4 + 12 = 16
fn(5) = 4 + fn(4) = 4 + 16 = 20
10 + 20 + 25 + 10 = 65