Boa Noite , se alguém poder me ajudar
Fiz dessa forma o exercício de subtração na recursividade
public static void main(String[] args) {
int[] v = {2, 5, 8, 6, 2, 4, 2};
int separador = condicao(v, 0);
System.out.println(separador);
}
public static int condicao(int[] v, int tamanho) {
int r = -1;
if (tamanho < v.length) {
}
if (v[tamanho] / 2 != 1) {
return 0;
} else {
return r * v[tamanho];
}
}
}
o Problema que ele não está somando os (- 2 ), nesse caso o resultado teria que dar (-4)
Onde está a recursividade?
O que esse método condicao
está fazendo?
Não entendi sua lógica:
-
se o tamanho
informado for menor que o tamanho do vetor v
, não faz nada
-
se a divisão por 2
do elemento na posição tamanho
for diferente de 1
então o método retorna 0
-
senão retorna o elemento na posição tamanho
multiplicado por -1
Você chegou a fazer um teste de mesa desse seu algoritmo?
Sim , ele imprime somente os numero que quero , que é - 2
Mas nesse caso ele deveria trazer ele somado que seria (-4)
Mas o primeiroif
é completamente desnecessário, pois ele não faz nada.
Por que somado?
Seu enunciado pede uma subtração, não soma.
O que você está fazendo é só inverter o sinal do número (multiplicando por -1)
Mas o que você deveria fazer é subtrair os números 2
Seu código só está passando pelo Primeiro elemento pois você não está usando recursividade.
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.executar();
}
public void executar() {
int[] v = new int[] { 2, 5, 8, 6, 2, 4, 2 };
int resultado = subtrair(v, v.length);
System.out.println(resultado);
}
public int subtrair(int[] vetor, int tamanho) {
if (tamanho <= 0) {
return 0;
}
int numero = vetor[tamanho - 1];
if (Math.abs(numero) != 2) {
numero = 0;
}
return subtrair(vetor, tamanho - 1) - numero;
}
}
1 curtida
Obrigado , agr eu entendi como funciona esse método . quando eu falei em soma ,por exemplo quis dizer se eu tenho o numero [2458221582] ele irá trazer somando e negativo os 2 , ai ele imprime o -8, obg , agr vou continuar estudando aqui