Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

Multiplikation von Extrem langen Zahlen
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> Multiplikation von Extrem langen Zahlen
 
Autor Nachricht
it2012
Newbie
Benutzer-Profile anzeigen

Anmeldungsdatum: 26.01.2012
Beiträge: 3

BeitragVerfasst am: 26 Jan 2012 - 23:04:16    Titel: Multiplikation von Extrem langen Zahlen

Hallo leute, diese Informatik aufgabe habe ich versucht zu lösen, aber leider ohne erfolg...

Ich wäre echt froh wenn mir jemand helfen könnte..




Die Aufgabe:
-----------------------------------------------------------------------------
Zwei sehr lange ganze, positive Zahlen ( a und b ) sind miteinander zu multiplizieren und das Ergebnis ( c ) ist auszugeben.
Die Zahlen a,b und c sind jeweils als String gespeichert:

char a[512]="123456789012345678901234567890123456789";
char b[512]="98765432109876543210987654321098765432109876";

Geben Sie eine Funktion an, welche das Ergebnis im Feld char c[...] ablegt.

Beachten Sie, dass der Ausdruck a[0]-'0' die erste Ziffer der Zahl a als Integer beinhaltet!


#include <stdio.h>

void mult(char a[], char b[], char c[]) {

int main (void) {

char a[512]="99999999999999999999999999";
char b[512]="11111111111111111111111111";
char c[1025];

mult(a,b,c);
printf("%s * %s = %s\n",a,b,c);

}

-----------------------------------------------------------------------------



Mein lösungsansazt bis jetzt lautet:








void mult(char a[], char b[], char c[]){

int i,k,q,j;

char temp1[512][1025] = {0};
char temp2[512][1025] = {0};
char temp3[512][1025] = {0};
char temp4[512][1025] = {0};


for (i=0 , j=5 ; i<=5 , j>=0 ; i++ , j--) {



for (k=5; k>=0; k--) {



temp2[i][k+6-i] = ((a[k]-4Cool * (b[j]-4Cool)/10;
temp4[i][k+6-i] = ((a[k]-4Cool * (b[j]-4Cool + temp2[i][k+7-i])/10;


temp1[i][k+7-i] = ((a[k]-4Cool * (b[j]-4Cool + temp4[i][k+7-i])%10;


temp1[i][k+6-i] = temp4[i][k+6-i];


}
}


for (k=13; k>=0; k--) {

for (i=5; i>=0; i--) {

temp3[1][k] += temp1[i][k];
}
}



for (k=12; k>=0; k--) {


c[k] = (temp3[1][k] + temp3[0][k])%10;

temp3[0][k-1] = ( temp3[1][k] + temp3[0][k] )/10;

}

}
it2012
Newbie
Benutzer-Profile anzeigen

Anmeldungsdatum: 26.01.2012
Beiträge: 3

BeitragVerfasst am: 27 Jan 2012 - 16:42:47    Titel:

Ist keiner hier im forum der mir helfen könnte? Crying or Very sad
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> Multiplikation von Extrem langen Zahlen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum