Suma cyfr w liczbie rekurencyjnie

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


0 Komentarzy - Suma cyfr w liczbie rekurencyjnie

Prześlij komentarz

Możesz użyć niektórych tagów HTML, takich jak <b>, <i>, <u>, <a> Nie spamuj :)

Popularne posty