Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Mnożenie dwóch długich liczb

Ostatnio zmodyfikowano 2012-01-01 22:23
Autor Wiadomość
orion
Temat założony przez niniejszego użytkownika
Mnożenie dwóch długich liczb
» 2012-01-01 21:38:49
Witam,
Mam problem z takim zadaniem:

Napisz program, który mnoży dwie długie liczby naturalne pamiętane jako tablice
cyfr.

Napisałem coś takiego:
C/C++
#include<stdio.h>

#define ROZMIAR 10000
main() {
   
    int j, l, k, i, n;
    int t1, t2;
   
    int A[ ROZMIAR ];
    int B[ ROZMIAR ];
    int C[ ROZMIAR ];
    int D[ ROZMIAR ];
   
   
   
    for( j = 0; j < l; j++ ) {
       
        for( i = 0; j < k; i++ ) {
           
            D[ i ] = A[ i ] * B[ j ];
            for( i = j; i < k + j; i++ ) {
               
                C[ i ] = C[ i ] + D[ i - j ];
                for( i = 0; i < n; i++ ) {
                   
                    t1 = C[ i ] % 10;
                    t2 = C[ i ] / 10;
                    C[ i ] = t1;
                    C[ i ] = C[ i + 1 ] + t2;
                }
            }
        }
       
    }
    return 0;
}
Ogólnie korzystałem za algorytmu na mnożenie pod kreską. Nie wiem jak wprowadzić do programu te dwie liczby i jak je zapisać jako tablice.


Proszę o wyrozumiałość bo nauka przychodzi mi naprawdę ciężko i mimo że staram się jak mogę to efekty są marne.
Z góry dzięki za wszelką pomoc.
P-47000
pekfos
» 2012-01-01 21:41:20
cyfra to znak więc char.
P-47001
orion
Temat założony przez niniejszego użytkownika
» 2012-01-01 21:44:06
Tylko jak zapisać tą podaną liczbe w tablicy. Mógłby ktoś to pokazać na jakimś przykładzie?


P-47003
pekfos
» 2012-01-01 21:50:26
czytuj każdy znak po kolei. Inaczej tak dużej liczby nie wczytasz.
Mniejszą można podzielić przez dzielenie całkowite i modulo.
P-47005
orion
Temat założony przez niniejszego użytkownika
» 2012-01-01 22:01:17
Nie wiem czy to jest poprawne i ma jakikolwiek sens.
    printf("Podaj x:");
    scanf("%s",A);
    printf("Podaj y:");
    scanf("%s",B);

Teraz mam problem jak zapisać ograniczenia dla tablic. Tzn mnożąc liczby 120*52 tablica A jest długości k=3 a B l=2, wykorzystuje to dla ewentualnego wyniku zapisanego w tablicy C której długość może wynieść k+l+1=n.

P-47012
malan
» 2012-01-01 22:19:52
Kod zaprezentowany przez Ciebie nie da takiego rezultatu jakiego oczekujesz. Przykład wyczytywania danych do tablicy masz tutaj: » Kurs C++ » Poziom 2Tablice jednowymiarowe lekcja.

Teraz mam problem jak zapisać ograniczenia dla tablic.
Zainteresuj się może » Kurs STL, C++Kontener tablicy (std::vector) lekcja. Poza tym - liczby nie muszą być tych samych rozmiarów (chyba, że możesz tak założyć).

Algorytm? Kartka, długopis i jedziesz :)

/edit:
Tak w ogóle, to do tego zadania łatwiej Ci chyba będzie skorzystać z std::string. Nie będziesz musiał się męczyć z dzieleniem liczby na poszczególne cyfry itd.
P-47018
orion
Temat założony przez niniejszego użytkownika
» 2012-01-01 22:23:10
Algorytm pisałem właśnie na kartce i jestem pewien jego działania.
Teraz mam problem napisaniem programu. Spróbuje to przestudiować, dzięki za pomoc.


edit

A dało by rado pokazać to na jakimś przykładzie? Bardzo by mi to pomogło.
P-47019
« 1 »
  Strona 1 z 1