Archiv verlassen und diese Seite im Standarddesign anzeigen : multiplikation ohne das Multiplikationszeichen
Hallo,
möchte ein Programm erstellen, wo zwei Zahlen multipliziert werden. Der Punkt ist der, dass dabei das *-Zeichen nicht vorhanden sein darf.
Habe folgenden Programmcode und weiß einfach nicht weiter:
#include <stdio.h>
int main()
{
int x, y, z;
printf("Zwei positive Zahlen multiplizieren\n");
scanf ("%d %d", &x, &y);
z=0;
for(x=0 ; x<=y; x=x+y)
{
z=z+x;
}
printf("Multiplikation ergibt %d\n", z);
printf("x= %d\n", x);
printf("y= %d\n", y);
return 0;
}
Wäre dankbar auf Tipps.
for (x=0 //x wird 0, der eine Faktor geht verloren!
Kann also nicht funktionieren. Ich würde das hier vorschlagen:
int x,y,z,ergebnis;
//...
z=0;
for (z=0;z<y,z++) {
ergebnis+=x;
}
//ergebnis ausgeben
mfG
cht
Hi, ich deklariere mich hiermit als vollkommenen Dödi:
Was ist schlimmes am "*" ??? :-s mfg
Vielleicht hat der Compiler eine Allergie.
Gruß
Torsten
Bei dem, was Computer heute sonst alles können, glaub ich dir das auch.
Naja, vielleicht gibts beim Conrad auch Cyber-Anti-Histamine und ich weiß das nur noch nicht. mfg
Wie waers mit inline assembler und mul??
mfg
martin
Was ist schlimmes am "*" ??? :-s mfg
Das "schlimme" ist, daß die Multiplikation in der Digitaltechnik immer auf eine Addition zurückgeführt werden muß.
Das merkt man spätestens dann, wenn man mal versucht, zwei Binärzahlen zu multiplizieren. 8-[
@thomson
Na sowas aber auch, was sie nicht meinen *staunen*
aber doch nicht auf SO eine Addition !
Wenn der Compiler oder der CHip die Rechnung 128 * 255 auf 128 oder gar 255 Additionen auftröselt, dreh ich ihm den Hals um mfg ](*,)
>Wenn der Compiler oder der CHip die Rechnung 128 * 255 auf 128 oder gar 255 Additionen auftröselt, dreh ich ihm den Hals um mfg
http://www.click-smilies.de/sammlung0304/grinser/grinning-smiley-019.gif
wie soll das Multiplizieren via Addieren denn mit Floatzahlen gehen ?
ciao ... bernd
hmm, man könnte es gaaanz kompliziert machen:
Rechnen, wie auf einen Stück Papier, d.h. Zahl für Zahl unter Berücksichtigung der Stelle multiplizieren, und das letztere Multiplizieren durch das Auslesen aus einer Lookuptabelle für das kleine 1x1 ersetzen ;-)
@bhm: Na siehste, jetzt kommen wir der Sache schon näher. O:)
>wie soll das Multiplizieren via Addieren denn mit Floatzahlen gehen ?
Da kommen dann Mantissen und Exponenten, Normalisierungen und Exponentenangleichungen ins Spiel...
Nicht umsonst wird die Leistungsfähigkeit eines Rechners in Floating Point Operations / sec. und nicht in Integer Operations / sec. gemessen. ;)
An alle: wir sind schon noch beim rumalbern, gelle ? *unsicherdreinschau* mfg
kann schon sein ;-)
aber das mit der lookuptable um das * zu vermeiden ist doch 'ne schicke Idee. Zugegeben, die könnte _etwas_ größer werden ;-)
Is war. Der Mensch lernt das 1x1 ja auch nur auswendig, und auswendig is ja irgendwie auch eine Tabelle, versteh' nicht, daß sich das nicht durchsetzt, Speicher kost' doch nix mehr.
Jetzt weiß ich's: man könnte PROMS machen dafür und extra verkaufen, (als feature oder "Robby's multiplying option"). Prom reicht, das 1x1 ändert sich doch eh relativ selten O:)
Hingegen das kleine 1x1 in binär könnt man aber schon machen, ist ja doch etwas kürzer.
*geniale-idee* Ein Projekt: Ein Abakus (rechenkugeln) mit Schrittmotoren und Greifer =D> mfg Robert
Hi an alle:
danke für eure Beiträge, aber ne diskussion wollte ich nicht auslösen, wobei das Problem schon längst aus der Welt geschaffen ist O:)
auch wenn das problem nicht mehr existiert, muss ich doch noch meinen
senf dazu geben.
bei der "normalen" multiplikation entstehen kosten von O(n²). n ist
dabei die länge der zahl in binärdarstellung. es sind also rechen-
operationen in der größenordnung n² nötig.
verwendet man jedoch die sogennannte fft (fast fourier transformation),
sind die kosten nur noch O(log(n) * n), also erheblich geringer.
btw.: fließkommazahlen benötigen keine andere berechung, da die
beiden mantissen einfach wie integer multipliziert werden und danach
einfach nur die exponenten addiert werden.
<klugscheiss ende>
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.