Metodo ricorsivo java

di il
1 risposte

Metodo ricorsivo java

Buonasera! Sono uno studente di informatica e ho da consegnare questo programma in java ma ho un problema, prima di tutto vi metto qui il testo:
Scrivere un metodo ricorsivo in Java (il metodo NON deve far uso di nessun comando iterativo e NON deve usare l'operatore * di moltiplicazione tra due numeri)
static int prodotto(int a, int b)
che presi come parametri due numeri interi a e b (che possono essere anche negativi) restituisce il loro prodotto.
Ad esempio, se a=2 e b=-3, il metodo deve restituire -6; se a=-4 ed b=-1 il metodo deve restituire 4.

Ho problemi proprio nella parte della gestione dei numeri negativi, non so come fare. Questo è il mio codice fino ad ora
public class main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    int a1= 5;
    int b1= 7;
    System.out.println (prodotto (a1,b1));
	}
	static int prodotto (int a, int b) {
		if (b==0) {
			return 0;
		}
		return a+prodotto(a,b-1);		
	}
	

}
Ho però notato che se vado ad inserire nella variabile a1 per esempio il valore -5 , il risultato è corretto, appunto -35 ! Però suppongo che non sia un semplice segno davanti alla variabile ciò che chiede il testo..per favore aiutatemi ad implementare nel codice la parte riguardante i numeri negativi, non so proprio come fare e la scadenza è domani..Grazie a chi mi aiuterà

1 Risposte

  • Re: Metodo ricorsivo java

    Manca qualche controllo aggiuntivo e cambio segno.

    public class main {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int a1= 5;
    int b1= 7;
    System.out.println (prodotto (a1,b1));
    }
    static int prodotto (int a, int b) {
    if (a== 0 || b== 0) {
    return 0;
    }

    else if (b< 0) {
    return -a+ prodotto(a, b+ 1);
    }

    else {
    return a+ prodotto(a, b- 1);
    }
    }


    }
Devi accedere o registrarti per scrivere nel forum
1 risposte