Python :: Aufgabe #1
33 Lösungen

Multiplikation ohne zu multiplizieren
Anfänger - Python
von Gustl
- 11.11.2012 um 17:24 Uhr
Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die Grundrechenart Addition erlaubt.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben.
Lösungen:

#!/usr/bin/python # -*- coding: iso-8859-1 -*- # #----------------------------------- # title: Multi-ohne-Multi # autor: Mike Rybcznyski # licence: CC BY-NC 3.0 # contact: twitter.com/zayc_ #----------------------------------- # z1 = 0 #Zahl 1 z2 = 0 #Zahl 2 z1val = False #Validation der Zahl 1 z2val = False #Validation der Zahl 2 counter = 1 #Zähler für Additionsschleife solution = 0 #Ergebnis (Vorläuftiges sowie Endergebnis) print "Dieses Programm multipliziert zwei Zahlen ohne die zu multiplizieren." print "Bitte die zu multiplizierenden Zahlen eingeben." while z1val == False: try: z1 = int(raw_input("Zahl 1: ")) z1val = True except ValueError: print "Ungueltige Eingabe: Eine ZAHL eingeben!" z1val = False while z2val == False: try: z2 = int(raw_input("Zahl 2: ")) z2val = True except ValueError: print "Ungueltige Eingabe: Eine ZAHL eingeben!" z2val = False solution = z1 while counter != z2: counter +=1 solution += z1 print str(z1) +" mal " +str(z2) +" ergibt: " +str(solution) +" !"

summand1 = int(input("Summand 1: \n")) summand2 = int(input("Summand 2: \n")) summe = 0 while summand2 != 0: summe += summand1 summand2 = summand2 - 1 print("Ergebnis:" , summe)
Konsolenausgabe:
Summand 1:
5
Summand 2:
4
Ergebnis: 20

print 'Multiplikation Addition' while True: try: x = int(raw_input('Zahl 1: ')) y = int(raw_input('Zahl 2: ')) break except: print 'Bitte Zahlen nochmalig eingeben.' u = 0 # Um die die Anzahl der Schleifen minimal zu halten. if x >= y: for i in range(y): u = u + x else: for i in range(x): u = u + y print 'Produkt: ', u

#Eingabe fehler_a=1 while fehler_a==1: try: print('Geben sie die erste ganze Zahl ein:') a=int(input()) fehler_a=0 except: print('Das war leider keine ganze Zahl.') fehler_b=1 while fehler_b==1: try: print('Geben sie die erste ganze Zahl ein:') b=int(input()) fehler_b=0 except: print('Das war leider keine ganze Zahl.') #Zerlegung der Multiplikation i=1 c=0 while i <= b: c=c+a i=i+1 print(c)

#!/usr/bin/python def multiplikation(produkt1, produkt2): if produkt2 == 1: print "Das Ergebnis ist:" return produkt1 else: return produkt1 + multiplikation(produkt1, produkt2-1) print "Dieses Programm multipliziert zwei belibige Zahlen." # rekursion funtioniert leider nicht bei vielen Nachkommastellen print multiplikation(input("Gib die erste Zahl ein:\n"), input("Gib die zweite Zahl ein:\n"))

# coding: utf8 print '''Ich kann zwei beliebige Zahlen multiplizieren und dabei ausschließlich addieren!''' while 1: try: x = int(input("1. Zahl: ")) y = i = int(input("2. Zahl: ")) break except: print '''Ich kann nur mit Zahlen rechnen, Du Witzbold! Bitte Zahlen nochmal eingeben.''' produkt = 0 while i != 0: produkt += x i -= 1 print "Ergebnis: ", x, '*', y, '=', produkt

while True: try: faktor1 = int(input("1. Faktor = ")) break except ValueError: print("Ganze Zahl eingeben") while True: try: faktor2 = int(input("2. Faktor = ")) break except ValueError: print("Ganze Zahl eingeben") i = 0 summe = 0 while i < faktor1: summe += faktor2 i += 1 print("Produkt aus %d und %d ist %d." % (faktor1, faktor2, summe))

ergebnis = 0 while True: x = int(raw_input('Zum Multiplizieren geben Sie bitte beide Faktoren ein.\nFaktor 1: ')) y = int(raw_input('Faktor 2: ')) for i in range(y): ergebnis += x print('\nErgebnis (%r x %r) = ') % (x,y), ergebnis ende = raw_input('Noch einmal? (j/n)? > ') if ende == 'n': print 'Ende' break if ende == 'j': ergebnis = 0 continue else: while ende not in ('j','n'): ende = raw_input('Falsche Eingabe (j/n)> ')

def f(x,y): sum = 0 for x in range(0,x): sum+=y return sum def getUserInput(): Uinput = input("Give in a number..") if not Uinput.isnumeric(): raise Warning else: return int(Uinput) x = None y = None while not (x or y): try: x,y = getUserInput(), getUserInput() except Warning: print("This isn't a number") print(f(x,y))

# -*- coding: cp1252 -*- # program to multiply 2 numbers whithout realy multypling in german language # programm zur berechnung von 2 zahlen ohne wirklich 'nur' zu multiplizieren # introduce program to user # dem benutzer das programm vorstellen print("Hallo!!!") print("Ich bin ein Programm zum multiplizieren zweier Zahlen.") print("Ich kann zwei ganze Zahlen(ohne Komma), oder auch eine Zahl ") print("mit Komma und eine Zahl ohne Komma miteinander multiplizieren.") print("Zwei Zahlen zu multiplizieren die jeweils ein Komma haben ist mir") print("leider nicht möglich.... :( ^^") # install posibility for runing program more then once if its users wish # ermöglichung das programm öfter als einmal laufen zu lassen falls das gewünscht wird j = "1" while j == "1" or j == "nein": # ask user for the first figure to multiply accept onely integer number # no programfailure possible # benutzer nach der ersten zahl fragen, nur ganzzahlen möglich # programm abbruch durch falsche eingabe nicht möglich while(1): try: a = int(input("Bitte die erste zu berechnende Zahl eingeben (ohne Komma!!!). : ")) break except: print("Eingabe war leider keine Zahl ohne Komma....") print("Also nochmal!!!") # ask user for the second figure to multiply no programfailure possible # allow to use ',' like its normal for type 2,345 for numbers # benutzer nach der ersten zahl fragen, programm abbruch durch falsche eingabe # nicht möglich, erlaubt die zahlen auch mit ',' einzugeben so wie es normale # ist zahlen zu schreiben 2,3445 while(1): print("Bitte die zweite zu berechnende Zahl eingeben,") b = input("gerne auch mit einem Komma. ;) : ") if "," in b: b = b.replace(",", ".") try: b = float(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") elif "." in b: try: b = float(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") else: try: b = int(b) break except: print("Eingabe war leider keine Zahl....") print("Also nochmal!!!") # enable c for containing addition and result # erstelle c um in ihr mittels addition das ergebnis zu erzielen c = 0 # loop to supplant multiplication # schleife um multiplikation zu ersetzen for i in range(a): c = c + b # because of some minimal trouble, like 10 * 0.4 = 3.9999999999999996 # or 90 * 0.01 = 0.9000000000000006 i made up my mind for following fix # aufgrund minimaler ungenauigkeitn wie z.b. 10 * 0.4 = 3.9999999999999996 # oder 90 * 0.01 = 0.9000000000000006 habe ich mir folgende lösung ausgedacht typefloat = 1.234 if type(b) == type(typefloat): b1 = str(b) bteile = b1.split(".") r = len(bteile[1]) c = round(c, r + 1) # output result # ausgabe des ergebnis print("Das Ergebnis von", a,"mal", b,"ist:" ,c) # ask user for new round of program, no programfailure possible by false user input # benutzer befragen ob eine weitere berechnung vorgenommen werden soll # programmabruch durch falsche eingabe nicht möglich z = -1 print("Möchtest du noch weitere Zahlen multiplizieren???") while(1): z += 1 if z == 0: j1 = input("Dann bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ") else: j1 = input("Bitte 'ja' oder '1' eingeben, falls nicht 'nein', oder '0': ") if j1 == "ja" or j1 == "Ja" or j1 == "JA" or j1 == "jA" or j1 == "1": break elif j1 == "nein" or j1 == "Nein" or j1 == "NEIN" or j1 == "NEin" or j1 == "neiN" or j1 == "0": j = "0" break else: print("Leider konnte ich deine Eingabe nicht zuordnen, bitte noch mal!")

#!/usr/bin/python3 # -*- encoding: utf-8 -*- # #>>>autor: Sebastian Müller #>>>licence: GPL #>>>contact: mypythonmueller@gmail.com # #Programm nach folgender Aufgabenstellung: #multiplizieren ohne zu multiplizieren #kein einzigstes "*" in meinem code :D ;) #(altäthiopische rechenart) print("Programm zum multiplizieren zweier GANZER Zahlen.") print erste = 0 while not erste: try: erste = int(input("Bitte die 1.Zahl eingeben: ")) except: print("Eingabe war leider nicht korrekt") zweite = 0 while not zweite: try: zweite = int(input("Bitte die 2.Zahl eingeben: ")) except: print("Eingabe war leider nicht korrekt") ergebnis = 0 while erste > 1: ergebnis = ergebnis + zweite if erste % 2 == 1 else ergebnis erste = erste // 2 zweite += zweite ergebnis += zweite print(ergebnis)

while True: try: a = int(input("Erste Zahl: ")) b = int(input("Zweite Zahl: ")) break except: print "\nDas ist keine Zahl! Gib zwei Zahlen ein:\n" erg = 0 for dummy in range(0, b): erg = erg + a print "\n", a, "*", b, "ergibt", erg
Zu erst wollte ich mit der Ägyptischen Multiplikation heran gehen, aber ich finde es so einfacher.
Zwei Funktionen, eine, die die Eingabe prüft und bei Erfolg die mult() Funktion mit den Eingaben aufruft. Hier wird die erste zahl so lange mit sich selbst addiert, bis ein zähler von 1 die zweite zahl erreicht. (Zu beachten ist, dass range(a,b) von a bis b-1 geht.
Python-Code
Beste Grüße,
Ah3
Zwei Funktionen, eine, die die Eingabe prüft und bei Erfolg die mult() Funktion mit den Eingaben aufruft. Hier wird die erste zahl so lange mit sich selbst addiert, bis ein zähler von 1 die zweite zahl erreicht. (Zu beachten ist, dass range(a,b) von a bis b-1 geht.

#!/usr/bin/env python3 def mult(m,n): """ Multiplate two digits just with addition operation""" result = m for i in range(1,n): result += m return result def getDigits(): """ check input and forward to mult() """ try: zahl1 = int(input('Zahl 1 = ')) zahl2 = int(input('zahl 2 = ')) print("Das Ergebnis von ",zahl1," * ",zahl2," =", mult(zahl1,zahl2)) except ValueError: print("Keine Zahl, bitter erneut: ") getDigits() def main(): """ print("Das Ergebnis von 2 * 3 =", mult(2,3)) print("Das Ergebnis von 5 * 10 =", mult(5,10)) """ getDigits() if __name__ == "__main__": main()
Beste Grüße,
Ah3

x = input("Enter number 1\n") y = input("Enter number 2\n") while type(x) != int and type(y) != int: print('Both numbers must be integers, please try again') x = input("Enter number 1\n") y = input("Enter number 2\n") sum = 0 for i in range(y): sum += x print('The result is ', sum)

def eingabe(): global zahl1 global zahl2 t = 1 while t == 1: try: zahl1 = int(input("Geben Sie eine Zahl ein: ")) t = 0 except: print("EINE ZAHL!!!") z = 1 while z == 1: try: zahl2 = int(input("Geben Sie eine weitere Zahl ein: ")) z = 0 except: print("EINE ZAHL!!!") def multiplikation(zahl1, zahl2): global ergebnis ergebnis = 0 while zahl2 > 0: ergebnis += zahl1 zahl2 -= 1 def ausgabe(ergebnis): print("Das Ergebnis beträgt", ergebnis) eingabe() multiplikation(zahl1, zahl2) ausgabe(ergebnis)

def get_input(hint): while True: try: value = int(input("Bitte {}. Zahl eingeben: ".format(hint))) break except ValueError: print("Fehler, das ist keine Zahl.") return value def multiply(zahl_eins, zahl_zwei): result = 0 for i in range(0, zahl_zwei): result += zahl_eins return result zahl_eins = get_input(1) zahl_zwei = get_input(2) ergebnis = multiply(zahl_eins, zahl_zwei) print("Ergebnis: {}".format(ergebnis))
Also ich habe das ganze jetzt nach meinem entsprechenden Hinweis in der Fragen-Sektion der Aufgabe auch für jede Länge von Kommastellen programmiert, ich hoffe, das ganze wirkt jetzt nicht zu klobig:
Python-Code

# additive_multiplikation.py # (c) Copyright 2017 by PythonIT def multiplizieren(zahl1, zahl2): # Methode zur multiplikation zweier Ganzzahlen ergebnis = 0 for i in range(zahl2): ergebnis += zahl1 return ergebnis while True: # Zahleneingabe try: zahl1 = float(input("Zahl 1: ")) zahl2 = float(input("Zahl 2: ")) break except: print("Bitte Zahlen eingeben") if len(str(zahl1)) <= len(str(zahl2)): # Überprüfung der Zahlenlängen, um zahl2, zahl1 = zahl1, zahl2 # Schleifendurchläufe zu sparen zahl2 = str(zahl2) l = zahl2.split(".") # Aufteilung in vor dem Komma und nach dem Komma ganzzahl = int(l[0]) teiler = len(l[1]) # Festlegung des Teilers, um die Nachkommastellen zu berichtigen dezimale = int(l[1]) produkt = multiplizieren(zahl1, ganzzahl) + (multiplizieren(zahl1, dezimale) / 10**teiler) print(produkt)

#=============================================================================== #Aufgabe # 1 # # Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert 2 Zahlen # einzugeben, diese sollen dann multipliziert werden, jedoch ist nur die # Grundrechenart Addition erlaubt. # # Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben # werden und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben. #=============================================================================== while True: try: number1 = float(input("Bitte geben Sie eine Zahl ein: ")) number2 = float(input('Nun die Zahl, mit der die erste multipliziert werden soll: ')) break except ValueError: print('Da ist etwas schiefe gelaufen, bitte geben Sie eine Zahl ein') ergebnis = 0.0 #print('Kontrollsumme: ' + str((number1 * number2))) while number2 > 0.0: ergebnis = ergebnis + number1 number2 = number2 - 1 print('Das Ergebnis der Multiplikation ist {ergebnis}'.format(ergebnis = ergebnis))

while True: try: x = int(input("1: ")) y = int(input("2: ")) break except ValueError: print("Fehler, versuchen Sie es erneut!") result = 0 for i in range(y): result += x print(result)

""" Created on Wed Apr 25 10:00:02 2018 @author: Thomas Anderson """ zahl1 = 0 #Multiplikator zahl2 = 0 #Multiplikand ergebnis = 0 #Ergebnis escape = 0 #Escape Bedingung für 1. Schleife escape2 = 0 #Escape Bedingung für 2. Schleife while not escape == 1: try: zahl1 = input('Bitte geben sie die 1. Zahl ein: ') zahl1 = int(zahl1) escape = 1 except: print('Ungültige Eingabe, Bitte gib eine Zahl ein!') continue while not escape2 == 1: try: zahl2 = input('Bitte geben sie die 2. Zahl ein: ') zahl2 = int(zahl2) escape2 = 1 except: print('Ungültige Eingabe, Bitte gib eine Zahl ein!') continue while zahl2 > 0: ergebnis += zahl1 zahl2 -= 1 print('\nDas Ergebnis der Multiplikation lautet: ', ergebnis)

def Abfrage(n): while True: try: n = int(input ("Eine Zahl eingeben: ")) break except: print("Bitte eine Zahl eingeben!") return n n = 0 zahl1 = Abfrage(n) zahl2 = Abfrage(n) summe = 0 liste = [zahl1 for x in range(zahl2)] for i in liste: summe = summe + i print(zahl1," * ",zahl2," = ",summe)

#nummerische multiplikation und division def multiplikation(A,B): ergebnis=0; A=int(A); B=int(B); for x in range(0,B,1): summ=ergebnis; ergebnis=A+summ; return ergebnis; def division(A,B): A=int(A); B=int(B); y=A-B; ergebnis=0; while(y>=0): summ=y; y=summ-B ergebnis=ergebnis+1; return ergebnis; while(1): erg=0; wert1=input("Erste Zahl:"); wert2=input("zweite Zahl:"); decision=input("Bitte Entscheiden Sie sich ob sie Dividieren (1)\noder Multiplizieren (0)wollen"); decision=int(decision); if decision==0: erg=multiplikation(wert1,wert2); elif decision==1: erg=division(wert1,wert2); else: print("syntax error;"); print(erg);

zaehler = 0 istEingabeVollstaendig = False erg = 0 while not istEingabeVollstaendig: if zaehler == 0: bezeichner = 'erste' if zaehler == 1: bezeichner = 'zweite' userEingabe = input('Bitte {0} Zahl eingeben: '.format(bezeichner)) if userEingabe.isdigit(): value = int(userEingabe) if zaehler == 0: zahl1 = value if zaehler == 1: zahl2 = value zaehler += 1 else: print('Falsche Eingabe. Bitte geben Sie {0} Zahl wieder :'.format(bezeichner)) if zaehler == 2: istEingabeVollstaendig = True i = 0 for i in range(1, zahl2 + 1): erg += zahl1 print(erg)

x=0 y=0 while(True): x = input("Geben sie die erste Zahl ein: ").replace(",",".") y = input("Geben sie die zweite Zahl ein: ").replace(",",".") try: float(x) float(y) break except: print("Eine deiner Eingaben entspricht keiner Zahl! Gebe deine zahlen bitte erneut ein.") sum=0 x=float(x) y=float(y) if (int(x)==x and int(y)==y) or (int(x)==x and int(y)!=y): for i in range(0,int(x)): sum+=y elif int(x)!=x and int(y)==y: for i in range(0,int(y)): sum+=x elif int(x)!=x and int(y)!=y: print("Multiplikation zweier Dezimalzahlen nicht verfügbar!") exit(0) print(sum)

''' Created on 03.11.2019 @author: Birdy ''' error = True while(error): try: number_one = int(input("Bitte geben Sie eine Zahl ein: ")) error = False except: error = True error = True while(error): try: number_two = int(input("Bitte geben Sie eine zweite Zahl ein: ")) error = False except: error = True def multiplikation (multi_one, multi_two): result = 0; for i in range(0,multi_one): result = result + multi_two i+=1 return result print ("Ihre beiden Zahlen ergeben mulitpliziert: "+str(multiplikation(number_one, number_two)))

while True: numberOne = "" numberTwo = "" while not numberOne.isdigit(): numberOne = input("Bitte erste Zahl eingeben: ") while not numberTwo.isdigit(): numberTwo = input("Bitte zweite Zahl eingeben: ") temp = int(numberOne) for i in range(int(numberTwo)-1): numberOne = int(numberOne) + temp print(numberOne) input() break

############################# # # # Erstellt von Reaper911211 # # # ############################# import os clear = lambda: os.system('cls') while True: clear() num1 = input('Zahl 1: ') if num1.isdigit(): num2 = input('Zahl 2: ') if num2.isdigit(): ergebnis = float(num1) + float(num2) print('Die Summe aus', num1, 'und', num2, 'ist', ergebnis) input("Bitte das Ergebnis bestätigen\n\n") else: print("Eingabe Fehlerhaft.\n Bitte eine Zahl eingeben.") input("press enter") else: print("Eingabe Fehlerhaft.\n Bitte eine Zahl eingeben.") input("press enter")

#python print("which int numbers are you want to multiplay?") def multiplay(a, b): c = 0 for i in range(b): c+= a return a, "*", b, "=", c loop = True while loop: i = True while i == True: try: number_1 = int(input("Zahl 1: ")) i = False except: print("false inpput") continue i = True while i == True: try: number_2 = int(input("Zahl 2: ")) i = False except: print("false inpput") continue i = True print(*multiplay(number_1, number_2))

#Helper function def inputNumber(message): while True: try: userInput = int(input(message)) except ValueError: print("Keine Zahl. Bitte nochmal versuchen!") continue else: return userInput break #Main a = inputNumber("Bitte geben Sie den ersten Faktor ein:") b = inputNumber("Bitte geben Sie den zweiten Faktor ein:") c = 0 if a > 0: for i in range(a): c = c + b elif b > 0: for i in range(b): c = c + a print("Das Ergebnis ist " + str(c))

# -*- coding: utf-8 -*- """ Created on Mon Aug 17 15:54:12 2020 @author: Sleepyy """ inp1 = int(input("Eingabe Multiplikand: ")) inp2 = int(input("Eingabe Multiplikator: ")) zahl = 0 for i in range(inp2): zahl = zahl + inp1 print("Der Produktwert lautet: ", zahl)

# Erstellen Sie ein Konsolenprogramm welches dem Benutzer auffordert # 2 Zahlen einzugeben, diese sollen dann multipliziert werden, # jedoch ist nur die Grundrechenart Addition erlaubt. # Wenn einer der 2 Zahlen keine Zahl ist, soll eine Fehlermeldung ausgegeben werden # und der Benutzer noch einmal aufgefordert werden eine Zahl einzugeben. while True: # Eingabeaufforderung zahl_1 = input("Zahl 1: ") zahl_2 = input("Zahl 2: ") # Überprüfung der Eingabe if zahl_1.isdigit() and zahl_2.isdigit(): zahl_1 = int(zahl_1) zahl_2 = int(zahl_2) ergebnis = 0 # Berechnung for i in range(0, zahl_1): ergebnis += zahl_2 print("Ergebnis:", ergebnis) break else: print("Bitte nur Ganzzahlen eingeben")

zahl1 = 0 zahl2 = 0 ergebnis = 0 x = 0 def abfrage(x, ergebnis): try: print("Bitte geben Sie Zahl 1 ein") zahl1 = int(input()) except: print("Das war keine Zahl, bitte erneut versuchen.") abfrage(x, ergebnis) else: try: print("Bitte geben Sie Zahl 2 ein") zahl2 = int(input()) except: print("Das war keine Zahl, bitte erneut versuchen.") abfrage(x,ergebnis) else: while x < int(zahl2): ergebnis += int(zahl1) x += 1 print("Ergebnis: " + str(ergebnis)) abfrage(x, ergebnis)
Hier auch eine Idee, beiden anzugebenden Zahlen einen negativen Wert zuzuordnen und ein korrektes Ergebnis zu erhalten.
Bisher hier nicht gefunden.
Python-Code
Bisher hier nicht gefunden.

# Programm zum Multiplizieren zweier ganzer Zahlen mittels Addition print("\nBitte zwei ganze Zahlen eingeben") res = 0 while True: try: a = int(input("Erste Zahl = ")) b = int(input("Zweite Zahl = ")) break except: print("Bitte nur ganze Zahlen eingeben") for i in range(abs(b)): # Betrag falls b negativ; b = 0: range = 0 res = res + a # a = 0: res = 0 if b < 0: res = res * (-1) if a < 0 and b < 0: # falls beide negativ res = abs(res) print(res)