W tym programie nauczysz się znajdować GCD dwóch liczb w Kotlinie. Odbywa się to za pomocą pętli for i while z pomocą instrukcji if else.
Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:
- Instrukcja Java if… else
- Java for Loop
- Java while i zrób… while Loop
Wartość HCF lub GCD dwóch liczb całkowitych jest największą liczbą całkowitą, która może dokładnie podzielić obie liczby (bez reszty).
Przykład 1: Znajdź GCD dwóch liczb za pomocą instrukcji for i if
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153, gcd = 1; for(int i = 1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1 % i==0 && n2 % i==0) gcd = i; ) System.out.printf("G.C.D of %d and %d is %d", n1, n2, gcd); ) )
Wynik
GCD 81 i 153 to 9
Tutaj dwie liczby, których GCD mają zostać znalezione, są przechowywane odpowiednio w n1 i n2.
Następnie wykonywana jest pętla for, dopóki i nie będzie mniejsze niż n1 i n2. W ten sposób wszystkie liczby od 1 do najmniejszej z dwóch liczb są powtarzane, aby znaleźć GCD.
Jeśli zarówno n1, jak i n2 są podzielne przez i, gcd jest ustawiane na liczbę. Trwa to aż do znalezienia największej liczby (GCD), która dzieli zarówno n1, jak i n2 bez reszty.
Możemy również rozwiązać ten problem za pomocą pętli while w następujący sposób:
Przykład 2: Znajdź GCD dwóch liczb za pomocą instrukcji while i if else
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = 153; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )
Wynik
GCD = 9
To lepszy sposób na znalezienie GCD. W tej metodzie mniejsza liczba całkowita jest odejmowana od większej liczby całkowitej, a wynik jest przypisywany zmiennej zawierającej większą liczbę całkowitą. Ten proces jest kontynuowany, aż n1 i n2 będą równe.
Powyższe dwa programy działają zgodnie z przeznaczeniem tylko wtedy, gdy użytkownik wprowadzi dodatnie liczby całkowite. Oto mała modyfikacja drugiego przykładu, aby znaleźć GCD zarówno dla dodatnich, jak i ujemnych liczb całkowitych.
Przykład 3: GCD dla liczb dodatnich i ujemnych
public class GCD ( public static void main(String() args) ( int n1 = 81, n2 = -153; // Always set to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1 != n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) System.out.println("G.C.D = " + n1); ) )
Wynik
GCD = 9