Napisz program, który metodą iteracyjną wypisze sumę cyfr podanej liczby. Poniżej znajduje się przykładowa implementacja wykonana metodą rekurencyjną. Przetestuj swój program dla liczby 473856394.
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 473856394 średnik.
Linia 5. if otwórz nawias okrągły n otwórz nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. n znak równości minus 1 asterysk n średnik.
Linia 7. zamknij nawias klamrowy.
Linia 9. int sumaCyfr znak równości sumujCyfry otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 11. System kropka out kropka println otwórz nawias okrągły sumaCyfr zamknij nawias okrągły średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. public static int sumujCyfry otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. if otwórz nawias okrągły n znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 16. return 0 średnik.
Linia 17. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 18. return n procent 10 plus sumujCyfry otwórz nawias okrągły n prawy ukośnik 10 zamknij nawias okrągły średnik.
Linia 19. zamknij nawias klamrowy.
Linia 20. zamknij nawias klamrowy.
Linia 21. zamknij nawias klamrowy.
Specyfikacja problemu:
Dane:
n – liczba całkowita, której sumę cyfr należy obliczyć
Wynik:
suma – liczba naturalna, suma cyfr liczby n
RxRSZRFaySaSu
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 473856394 średnik.
Linia 4. int sumaCyfr znak równości 0 średnik.
Linia 6. if otwórz nawias okrągły n otwórz nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. n znak równości minus 1 asterysk n średnik.
Linia 8. zamknij nawias klamrowy.
Linia 10. while otwórz nawias okrągły n zamknij nawias ostrokątny 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. sumaCyfr plus znak równości n procent 10 średnik.
Linia 12. n prawy ukośnik znak równości 10 średnik.
Linia 13. zamknij nawias klamrowy.
Linia 15. System kropka out kropka println otwórz nawias okrągły sumaCyfr zamknij nawias okrągły średnik.
Linia 16. zamknij nawias klamrowy.
Linia 17. zamknij nawias klamrowy.
11
Ćwiczenie 2
Napisz program, który metodą iteracyjną wypisze wszystkie liczby naturalne nie większe od podanej liczby n i podzielne przez x (nie uwzględniając zera, w kolejności malejącej). Przetestuj go dla n = 18 oraz x = 3.
Specyfikacja problemu:
Dane:
n – liczba naturalna
x – liczba naturalna dodatnia
Wynik:
wypisze wszystkie liczby naturalne nie większe od podanej liczby n i podzielne przez x (nie uwzględniając zera, w kolejności malejącej)
R1cZ3TO8uHonb
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 18 średnik.
Linia 4. int x znak równości 3 średnik.
Linia 6. for otwórz nawias okrągły int i znak równości n średnik i zamknij nawias ostrokątny znak równości 1 średnik i minus minus zamknij nawias okrągły otwórz nawias klamrowy.
Linia 7. if otwórz nawias okrągły i procent x znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 8. System kropka out kropka println otwórz nawias okrągły i zamknij nawias okrągły średnik.
Linia 9. zamknij nawias klamrowy.
Linia 10. zamknij nawias klamrowy.
Linia 11. zamknij nawias klamrowy.
Linia 12. zamknij nawias klamrowy.
21
Ćwiczenie 3
Napisz program, który metodą rekurencyjną wypisze wszystkie liczby naturalne nie większe od podanej liczby n i podzielne przez x (nie uwzględniając zera, w kolejności malejącej). Przetestuj go dla n = 18 oraz x = 3.
Specyfikacja problemu:
Dane:
n – liczba naturalna
x – liczba naturalna dodatnia
Wynik:
wszystkie liczby naturalne nie większe od podanej liczby n i podzielne przez x (nie uwzględniając zera, w kolejności malejącej)
R10VabAZRHcS6
Przykładowe rozwiązanie zadania:
Linia 1. public class Main otwórz nawias klamrowy.
Linia 2. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy.
Linia 3. int n znak równości 18 średnik.
Linia 4. int x znak równości 3 średnik.
Linia 6. wypisywanieRekursywne otwórz nawias okrągły n przecinek x zamknij nawias okrągły średnik.
Linia 7. zamknij nawias klamrowy.
Linia 9. public static void wypisywanieRekursywne otwórz nawias okrągły int n przecinek int x zamknij nawias okrągły otwórz nawias klamrowy.
Linia 10. if otwórz nawias okrągły n procent x znak równości znak równości 0 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 11. System kropka out kropka println otwórz nawias okrągły n zamknij nawias okrągły średnik.
Linia 12. zamknij nawias klamrowy.
Linia 14. if otwórz nawias okrągły n zamknij nawias ostrokątny 1 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 15. wypisywanieRekursywne otwórz nawias okrągły n minus 1 przecinek x zamknij nawias okrągły średnik.
Linia 16. zamknij nawias klamrowy.
Linia 17. zamknij nawias klamrowy.
Linia 18. zamknij nawias klamrowy.