Dezimalzahl in Quinärzahl umwandeln



  • Schreiben Sie eine Funktion void pot5(unsigned int ), die eine nichtnegative
    ganze Zahl als Argument bekommt und deren Zerlegung in Potenzen von 5 auf die Konsole
    ausgibt. Sie können davon ausgehen, dass das Ergebnis nicht mehr als 20 Stellen hat.
    Beispiel: pot5(345) = 2340

    Mein Programm sieht bis jetzt so aus:

    void pot5(unsigned int Zahl) {
    
    	int Ergebnis = 0;
    	cout << "Geben sie eine positive Dezimalzahl bis max 20. Stellen ein" << endl;
    	cin >> Zahl;
    	Ergebnis =
    
    		cout << Ergebnis << endl;
    

    Wie steure ich die einzelnen Ziffern der bis zu 20. Stelligen Zahl an? Über die Bits irgendwie? Gibt es für die Aufgabe eine sehr simple Lösung?
    Das Prinzip vom Umwandeln von Dezimal in eine Zahl mit Basis 5 habe ich verstanden.

    Zur not würde ich jede Ziffer einzeln einlesen und dann im Ergebnis Summieren.



  • Das soll sicher ganz anders aussehen:

    void pot5(unsigned int Zahl)
    {
       //gib die Zerlegung wie in der Aufgabenstellung auf die Konsole aus
    }
    
    int main()
    {
       cout << "gib eine zu zerlegende Zahl ein";
       
       unsigned int input;
    
       cin >> input;
    
       pot5(input);
    }
    

  • Mod

    Das Ergebnis hat nicht mehr als 20 Stellen. Also 14 Dezimalstellen.

    Gegeben eine Zahl X, dann ist X/10^N modulo 10 die N'te Dezimalstelle (von rechts mit 0 beginnend). Aber das brauchst du ja gar nicht zu wissen, du willst schließlich die Stellen im 5er-System. Vielleicht gibt es ja eine Möglichkeit, die obige Formel von 10 auf 5 umzuschreiben.



  • Das hat mir sehr geholfen! Sehr einfach zu verstehen. Für Beginner perfekt geeignet
    https://www.delftstack.com/de/howto/cpp/how-to-convert-decimal-number-to-binary-in-cpp/
    Küsschen



  • @Belli Tatsächlich nicht, soll alles in der Funktion geschrieben werden. Ist ne Klausuraufgabe



  • @Pac0 sagte in Dezimalzahl in Quinärzahl umwandeln:

    Schreiben Sie eine Funktion void pot5(unsigned int ), die eine nichtnegative
    ganze Zahl als Argument bekommt

    Das widerspricht einer Eingabe mit cin innerhalb der Funktion.



  • @Pac0 sagte in Dezimalzahl in Quinärzahl umwandeln:

    @Belli Tatsächlich nicht, soll alles in der Funktion geschrieben werden. Ist ne Klausuraufgabe

    Um es noch klarar als @DirkB zu formulieren: Nein, die Eingabe soll NICHT innerhalb der Funktion erfolgen. Lies die Aufgabe nochmal. Die Funktion pot5 soll ein Argument haben, nämlich die zu zerlegende Zahl.


Log in to reply