Multiplikation (Schleifen)
Schreiben Sie ein Programm, das zwei Zahlen miteinander multipliziert, indem nur die Addition verwendet wird.
Zusatzaufgabe: Lassen Sie in einer erweiterten Lösung auch zu, dass jeder der beiden Faktoren negativ sein darf.
0 Kommentare
4 Lösung(en)
z1 = int(raw_input("Zahl 1: "))
z2 = int(raw_input("Zahl 2: "))
prod = 0
if z1 >=0:
for i in range (z1):
prod = prod + z2
else:
if z2 >=0:
for i in range (z2):
prod = prod + z1
else:
z3 = (-1)*z2
for i in range (z3):
prod = prod - z1
print str(z1)+' x '+str(z2)+' = '+str(prod)
package ch.programmieraufgaben.iteration;
import java.util.Scanner;
public class Multiplikation {
public static void main(String[] args) {
new Multiplikation().top();
}
void top() {
int z1 = einlesenInt ("Zahl 1");
int z2 = einlesenInt ("Zahl 2");
boolean neg = (z1 < 0) ^ (z2 < 0);
if(z1 < 0) {
z1 = -z1;
}
if(z2 < 0) {
z2 = -z2;
}
long produkt = 0;
while(z2 > 0) {
produkt = produkt + z1;
z2 = z2 - 1;
}
if(neg) {
produkt = - produkt;
}
System.out.println("Produkt = " + produkt);
}
// generelle Hilfsfunktionen
Scanner sc = new Scanner(System.in);
int einlesenInt(String wert) {
meldung(wert);
return sc.nextInt();
}
void meldung(String wert) {
System.out.println("Bitte " + wert + " eingeben:" );
}
} // end of class Multiplikation
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
program Multiplikation (input, output);
var
a : integer;
b : integer;
i : integer;
produkt : integer;
begin
writeln('Bitte geben Sie eine ganze Zahl ein: ');
readln(a);
writeln('Bitte geben Sie eine weitere ganze Zahl ein: ');
readln(b);
i := 1;
produkt := 0;
while( i <= b) do
begin
produkt := produkt + a;
i := i + 1
end;
writeln('Das Produkt lautet: ', produkt)
end.
Lösung von: Katja Rummler ()
function multiplyByAddition(a, b) {
if (a == 0 || b == 0) return 0;
let pos = ((a > 0) && (b > 0)) || ((a < 0) && (b < 0)) ;
a = Math.abs(a); b = Math.abs(b);
let res = b;
while (a > 1) {
res += b;
a--;
}
return pos ? res : -res;
}
console.log(multiplyByAddition(8, 4));
console.log(multiplyByAddition(-8, 4));
console.log(multiplyByAddition(8, -4));
console.log(multiplyByAddition(-8, -4));
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.5 |
Schwierigkeit: | k.A. |
Webcode: | a82k-ofbb |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |