Metoda chłopów rosyjskich

Awatar użytkownika
ariadna
Użytkownik
Użytkownik
Posty: 2702
Rejestracja: 22 maja 2005, o 22:26
Płeć: Kobieta
Lokalizacja: Olsztyn/Berlin
Podziękował: 47 razy
Pomógł: 642 razy

Metoda chłopów rosyjskich

Post autor: ariadna »

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}}\)
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

Metoda chłopów rosyjskich

Post autor: Szemek »

do przeglądnięcia:
... rosyjskich
... C5%82y#mnożenie_chłopów
Awatar użytkownika
ariadna
Użytkownik
Użytkownik
Posty: 2702
Rejestracja: 22 maja 2005, o 22:26
Płeć: Kobieta
Lokalizacja: Olsztyn/Berlin
Podziękował: 47 razy
Pomógł: 642 razy

Metoda chłopów rosyjskich

Post autor: ariadna »

Szemek, znam google;)


Problem w tym, że i tak mi to nie chce działać.
Awatar użytkownika
Szemek
Użytkownik
Użytkownik
Posty: 4819
Rejestracja: 10 paź 2006, o 23:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 43 razy
Pomógł: 1407 razy

Metoda chłopów rosyjskich

Post autor: Szemek »

trochę programuję w C++ (a podobno Java jest podobna do C++),
jeśli możesz to wrzuć kod,
zobaczę, co będę w stanie zrobić
smiechowiec
Użytkownik
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

Post autor: smiechowiec »

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));  
    };
  
  
}
ODPOWIEDZ