2017-05-15 5 views
-1
public static int sumDigits (int n) { 
    if(n < 10) 
    return n; 
    else 
    return n%10 + sumDigits (n/10); 
} 

Diese Methode wird verwendet, um die Summe der Ziffern in einer Reihe rekursiv zu berechnen, aber ich verstehe es nicht? Was ist der Zweck von n% 10 ???Was ist der% Operator in Java?

+0

n% 10 gibt den Rest einer Division mit 10 zurück. Beispiel 5% 10 wäre 5 und 13% 10 wäre 3 – XtremeBaumer

+1

Mögliches Duplikat von [Was ist die Syntax für Mod in Java] (http://stackoverflow.com/Fragen/90238/was-the-Syntax-for-mod-in-java) – Sergey

+0

Mögliches Duplikat [die Modulo-Operator% Legendes] (http://stackoverflow.com/questions/17524673/understanding-the-modulus-operator) – Tom

Antwort

1

n%10 Sie die niedrigstwertige Ziffer des n gibt durch den Rest der Berechnung damit die Zahl von 10.

Dividieren, gibt die Methode die Summe der niedrigstwertigen Stelle und die Summe der Ziffern der n/10 (was die Nummer, die alle Ziffern von n enthält, mit Ausnahme der niedrigstwertigen Ziffer.

0

% Modul ist, so n mod 10, gibt sie den Rest nach der n/10

wenn n 1 bis 10 ist, dann wird es 1 bis 9 und 0 zurück, wenn n 10.

0
ist

n%10 bedeutet Modul von 10. Dies wird verwendet, um die letzte Ziffer zu erhalten.

sagen Lassen Sie Ihre Nummer 12345 ist

12345 % 10 bedeutet Rest, wenn 12345 durch 10 unterteilt, die Sie 5 gibt.

Wenn Sie danach (n/10) ausführen, erhalten Sie 1234 (alle Zahlen außer der niedrigstwertigen Ziffer, die Sie im vorherigen Schritt erhalten haben).

0

n%10 bedeutet das Modul von 10, das ist der Rest, den Sie erhalten, wenn Sie mit 10 teilen. Hier wird es verwendet, um jede Ziffer zu erhalten.

Beispiel:

Sagen Sie Ihre Nummer n = 752.

ist

n% 10 = 2, n/10 = 75

So fügen Sie 2 zum sumDigits(75)

Jetzt, n% 10 = 75% 10 = 5. Dies ist die Ziffer, die hinzugefügt werden soll, und so weiter, bis Ihre n >= 10. Wenn es < 10 ist, haben Sie eine einzelne Ziffer, die Sie nur so zurückgeben müssen, wie es ist, da das nur die Summe der Ziffern in dieser einstelligen Zahl ist.

+0

das vertuscht, nette Erklärung – manish

+0

Danke @manish! –

+0

willkommen stuti, du scheinst eine sehr gute Art von Mentor zu sein :) – manish