Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Multiplizieren ohne Multiplizieren (Schleifen)

Versucht eine Multiplikationsaufgabe mit 3 Faktoren (x * y * z) zu lösen, ohne die Multiplikation ihrer Programmiersprache zu verwenden.

Mann sollte für x,y und z beliebige positive ganze Zahlen einsetzten können.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

10 Lösung(en)

public class Multiplicator {
	
	private Scanner sc;

	public static void main(String[] args) {
		new Multiplicator().load();
	}
	
	public void load() {
		System.out.println("\nErgebnis: " + calc());
	}
	
	private int calc() {
		int first = getFirstMultiplicator();
		int second = getSecondMultiplicator();
		int third = getThirdMultiplicator();
		int calc = 0;
		
		for(int i = 1; i <= first; i++) {
			calc += second;
		}
		
		first = calc;
		calc = 0;
		
		for(int i = 1; i <= first; i++) {
			calc += third;
		}
		
		return calc;
	}

	private int getFirstMultiplicator() {
		try {
			sc = new Scanner(System.in);
			System.out.print("Geben Sie den ersten Multiplikator ein: ");
			String value = sc.next();
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			System.out.println("Bitte geben Sie nur Zahlen ein!");
			System.exit(0);
		}

		return 0;
	}
	
	private int getSecondMultiplicator() {
		try {
			System.out.print("Geben Sie den zweiten Multiplikator ein: ");
			String value = sc.next();
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			System.out.println("Bitte geben Sie nur Zahlen ein!");
			System.exit(0);
		}

		return 0;
	}
	
	private int getThirdMultiplicator() {
		try {
			System.out.print("Geben Sie den dritten Multiplikator ein: ");
			String value = sc.next();
			sc.close();
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			System.out.println("Bitte geben Sie nur Zahlen ein!");
			System.exit(0);
		}

		return 0;
	}
}
                

Lösung von: Linus Götz (Lichtenberg-Gymnasium Cuxhaven)



import java.util.InputMismatchException;
import java.util.Scanner;


public class MultiplizierenOhneMultiplizieren {



    public static int leseInt(String i) {

        Scanner scan = new Scanner(System.in);

        int zahl2 = 0;

        System.out.println("Geben Sie " + i + " ein (Es muß eine Zahl sein)");
        try {

            zahl2 = scan.nextInt();

        } catch (InputMismatchException e) {
            System.out.println("Du hast keine Ganzzahl eingegeben!");
            zahl2 = leseInt(i);

        }

        return zahl2;

    }





    public static void main(String[] args) {

        System.out.println("Bitte gebe deine 3 Zahlen ein");

        int x = leseInt("x");
        int y = leseInt("y");
        int z = leseInt("z");
        int erg = 0;

        for (int i = 1; i <= y; i++) {
            for (int j = 1; j <= z; j++) {
                erg = erg + x;
            }
        }
        System.out.println(erg);
    }

}

                

Lösung von: Daniel Majunke (GFN)

'24.3.2017 - Powerbasic 10


#COMPILE EXE
#DIM ALL

FUNCTION PBMAIN () AS LONG

DIM x AS LONG
DIM y AS LONG
DIM z AS LONG
DIM inpStr AS STRING

inpStr = INPUTBOX$("Bitte geben Sie 3 kommagetrennte positive Ganzzahlen zum Multiplizieren ein:","Multiplizieren","50,213,22")

    x = VAL(PARSE$(inpStr,",",1))
    y = VAL(PARSE$(inpStr,",",2))
    z = VAL(PARSE$(inpStr,",",3))

    IF isValid(FORMAT$(x+y+z)) THEN
        DIM i AS LONG
        DIM t AS LONG

        DIM Produkt AS LONG

        FOR t = 1 TO z
            FOR i = 1 TO y
                Produkt += x
            NEXT i
        NEXT t

        MSGBOX STR$(Produkt),,EXE.NAME$
    ELSE
        MSGBOX "Bitte Eingaben nochmal überdenken....",,EXE.NAME$
    END IF

END FUNCTION

'-------------------------
FUNCTION IsValid(aa AS STRING) AS BYTE
    IsValid = 0
    IF LEN(aa$) AND RETAIN$(aa$,ANY "0123456789")=aa$ AND VAL(aa$) > 0 THEN
        IsValid = 1
    END IF
END FUNCTION
                

Lösung von: Markus Sägesser (keine)

#include <stdio.h>

int main(void) {
    int anzahlAnFaktoren = 3;
    int faktor[anzahlAnFaktoren];
    int ergebnis = 0;
    int zwErgebnis = 0;
    int i;
    int j;

    for (i = 0; i <= anzahlAnFaktoren - 1; i++) {
        scanf("%i", &faktor[i]);
    }

    ergebnis = faktor[0];

    printf("%i * %i * %i = ", faktor[0], faktor[1], faktor[2]);

    for (j=0; j< anzahlAnFaktoren - 1; j++) {
        for (i = 0; i < ergebnis; i++) {
            zwErgebnis += faktor[j + 1];
        }
        ergebnis = zwErgebnis;
        zwErgebnis = 0;
    }
    printf("%i \n", ergebnis);
    return 0;
}

                

Lösung von: Julian Akkaya (-)

public class Hauptklasse 
{
    public static void main(String[] args)
	{
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.print("Erster Faktor: ");
        int Faktor1 = scanner.nextInt();
        System.out.print("Zweiter Faktor: ");
        int Faktor2 = scanner.nextInt();
        System.out.print("Dritter Faktor: ");
        int Faktor3 = scanner.nextInt();
	    int zaehler1 = 1;
	    int zaehler2 = 1;
	    int Zwischenergebnis = 0;
	    while (zaehler1 <= Faktor3)
	    {
	    	zaehler2 = 1;
	        while (zaehler2 <= Faktor2)
	        {
	        	Zwischenergebnis += Faktor1;
	        	zaehler2 += 1;
	        }
	        zaehler1 += 1;
	    }   
	    System.out.print("Ergebnis: " + Zwischenergebnis);
	}
}
                

Lösung von: Arnim Pankratz (Freiherr-vom-Stein-Gymnasium Betzdorf)

def mult(a, b, c):
	prod = 0
	for _ in range(a):
		for __ in range(b):
			prod += c
	return prod
                

Lösung von: Bester Mensch (Class)

var x = 2;
var y = 3;
var z = 4;
var a = 0;

for (var i = 1; i <= y; i++) {

	for (var j = 1; j <= z; j++) {
	console.log(a += x);
}
}

                

Lösung von: Irene Strauß (Liceo Scientifico, Bruneck)

package Aufgaben.Multiply;

public class MultiplyWithoutMultiplying
{

	public static void main(String[] args)
	{
		System.out.println(multiply(3,multiply(4,8)));
	}

	private static int multiply(int a, int b)
	{
		int result = 0;
		for(int i = 0; i < b; i++)
		{
			result += a;
		}
		
		return result;
	}
	
}
                

Lösung von: Name nicht veröffentlicht

#include <stdio.h>

int mult(int a, int b){
	return (a == 0 || b == 0 ? 0 : mult(a-1,b) + b);
}

int mult2(int a, int b, int c){
	return mult(mult(a,b),c);
}

int main(int argc, char *argv[]){
	
	int i=0;
	char check;
	int fac[3];

	for (i=0; i<3; i++){
		do {
			printf("Geben Sie den %d. Faktor ein: ", i+1);
			check = scanf("%d",&fac[i]);
		}
		while(fac[i] < 0 || getchar() != '\n' || check != 1);	
	}

	printf("Res = %d\n",mult2(fac[0],fac[1],fac[2]) );
}
                

Lösung von: André Trobisch (HS Mittweida)

/* 
 * File: Multiplizieren ohne Multiplizieren 
 * Author: Manuel Stolze
 * Created on 23. Juni 2017, 10:55
 */

#include <cstdlib>
#include <iostream>
using namespace std;

class Berechnung {
public:
    void berechnen();
private:
    int x = 0;
    int y = 0;
    int z = 0;
    int ergebnis = 0;
    int counter1 = 1;
    int counter2 = 1;   
};

void Berechnung::berechnen(){    
    
    // Werte einlesen //
    cout << "Geben Sie die erste Zahl ein: ";
    cin >> x;
    cout << "Geben Sie die zweite Zahl ein: ";
    cin >> y;
    cout << "Geben Sie die dritte Zahl ein: ";
    cin >> z;

    // Multiplikation 3. Zahl //
    while(counter1 <= z){
        counter2 = 1;
        
        // Multiplikation 2. Zahl //
        while(counter2 <= y){
            ergebnis += x;
            counter2 += 1;
        }
        counter1 += 1;
    }
    cout << "Das Ergebnis ist: " << ergebnis;
}

int main(int argc, char** argv) {

    Berechnung berechnung;
    berechnung.berechnen();
    return 0;
}


                

Lösung von: Manuel Stolze (Hochschule Darmstadt)

Verifikation/Checksumme:

für x, y bzw. z:
3, 4, 5 → 60
6, 0, 4 → 0

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: Leicht
Webcode: ex4w-hzu4
Autor: ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen