Napisz program w javie, który poda wynik mnożenia dwóch liczb, bez użycia znaku mnożenia, który korzysta z poniższej reguły:
\(\displaystyle{ m\cdot{n}=\left\{\begin{array}{l} m \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, dla \, n=1\\m\cdot{(n-1)}+m\,\,\,\,\,\,\,\, dla \, n>1\, nieparzyste\\2m\cdot{\frac{n}{2}}\,\,\,\,\,\,\,\,\,\,\,\, dla\, n \,parzyste \end{array}}\)
Metoda chłopów rosyjskich
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
Metoda chłopów rosyjskich
Kod: Zaznacz cały
public class roschlop {
/** Creates a new instance of roschlop */
// Klasa jest tylko atrapą niezbędną do uruchomienia programu w jawie
public roschlop() {
}
// Sprawdzenie czy liczba całkowita jest parzysta
public static boolean parzysta(int n) {
if ((n & 1) == 0)
return true;
else
return false;
}
// Implementacja wzoru Ariadny
public static int rch(int m, int n ) {
if (n == 1)
return m;
if (!parzysta(n))
return rch(m, n - 1) + m;
else
return rch( m << 1, n >>> 1 );
}
public static void main(String args[]) {
System.out.println("5 x 7 według chłopów rosyjskich = " + rch(5, 7));
};
}