W jednym z wcześniejszych
postów liczyliśmy sumę cyfr w liczbie za pomocą iteracji. Poniżej rozwiązanie tego zadania z wykorzystaniem rekurencji.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;
/**
* Suma cyfr w liczbie rekurencyjnie
* @author kodatnik.blogspot.com
*/
public class SumaCyfr {
// metoda sumaCyfr zwraca sumę cyfr liczby
// przekazanej jako parametr jej wywołania
public static int sumaCyfr(int liczba) {
// jesli liczba mniejsza od 10 zwróć ją (warunek kończący wywołania rekurencyjne)
if (liczba < 10)
return liczba;
// w przeciwnym razie bierzemy ostatnią cyfrę (modulo 10) plus rekurencyjne
// wywołanie naszej metody z parametrem będącym liczbą bez ostatniej cyfry
return (liczba % 10) + sumaCyfr(liczba / 10);
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.print ("Podaj liczbę: " );
// pobieramy od użytkownika liczbę
int liczba = sc.nextInt();
// wyświetlamy na ekranie sumę cyfr w liczbie
System.out.println("Suma liczb: " + sumaCyfr(liczba));
}
}
Uruchomiona aplikacja:
Podaj liczbę: 12345
Suma liczb: 15
1 Komentarz - Suma cyfr w liczbie rekurencyjnie
przydatne w pracy
Prześlij komentarz
Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)