Populacja królików rekurencyjnie

Mamy takie zadanie: Każdego roku pewna populacja królików podwaja się. Jeżeli początkowo było m królików to ile ich będzie po n latach? Rozwiązanie rekurencyjne poniżej.
// wykorzystujemy klasę Scanner z pakietu java.util
import java.util.*;

/**
 * Populacja królików rekurencyjnie
 * @author kodatnik.blogspot.com 
 */ 
public class Kroliki {
 
 // metoda zwraca liczebność królików po określonej liczbie lat
 // parametry: m - liczebność początkowa, n - liczba lat
 public static int populacja(int m, int n) {
  // jeżeli liczba lat równa się jeden zwróć podwojoną liczbę królików
  // w przeciwnym wypadku wywołaj rekurencyjnie metodę zwiększając 
  // liczbę królików i zmniejszając liczbę lat
  if ( n == 1 ) return 2*m;
  else return populacja(2*m, --n);
 }

 public static void main(String[] args) {
  
  Scanner sc = new Scanner(System.in);
  System.out.print ("Podaj początkową populację królików: " );

  // pobieramy od użytkownika liczbę
  int m = sc.nextInt();

  System.out.print ("Podaj liczbę lat: " );

  // pobieramy od użytkownika liczbę
  int n = sc.nextInt();
    
  // wyświetlamy na ekranie obliczoną populacje królików
  System.out.println("Po " + n + " latach będzie " + populacja(m, n) + " królików");
 
 }
}
Przykładowe uruchomienie aplikacji (ach te króliki ;):
Podaj początkową populację królików: 100
Podaj liczbę lat: 10
Po 10 latach będzie 102400 królików


1 Komentarz - Populacja królików rekurencyjnie

Anonimowy pisze...

ss

Prześlij komentarz

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

Popularne posty