Suche nach der richtigen Umsetzung?



  • Hallo guten Abend,
    Ich habe bei der Herangehensweise an eine Aufgabe , die Ich mir selber gestellt habe, ein Problem dass Ich nicht so einfach lösen kann. Unzwar allgemein erklärt : man habe eine Zahl a=12345667... usw. nun möchte man Teile dieser Zahl durch eine andere dividieren , z.B zahl b=5;
    1.) 1/5
    2.) 12/5
    3.) 123/5
    usw. Ich lade zur Veranschaulichung ein C++ Programm mit hoch:

    #include<iostream>
    using namespace std;
    
    void divide(long int ,long int );
    
    int main(){
    long int a,b,c,z;
    a=333333;
    b=6544654;
    c=13;
    z=a*b;
    
    do{
    cout<< "Testzahl ist  : "<<"\n"<<z<<"\n";
    divide(z,c);
    cout<< "Bitte Eingabe einer weiteren Testzahl: ";
    cin>>z;
    
    }while(z%c != 0);
    
    return 0;
    }
    void divide(long int z, long int c) {
    z=z/c;
    cout<<"Ergebnis ist : "<<z<<endl;
    }
    

    Konkret in dem Programm sollte in der do while eine Konstruktion entstehen,
    die die Ziffern der Zahl sukzessive kombiniert und die Zahl dabei vergroessert
    und an die Funktion die neue Variante zum testen uebergibt.

    Auf den ersten Blick kein so schweres Problem aber welche Kombination aus welchen Datenstrukturen und c++ Kniffen (Array,Schleifen...) kann das umsetzen?
    Ich komm in der Regel oft auf Lösungen aber bei dem Problem kann Ich die Ansätze nicht zuende denken ?
    Kennt vielleicht jemand die richtige Technik?



  • Wenn die Reihenfolge auch anders herum sein kann dann fängst du einfach mit der kompletten Zahl an und teilst dann immer durch 10 um die letzte Stelle zu entfernen.



  • das waere schon ein brauchbarer Ansatz , aber wie mache Ich das wenn die
    Zahl z.B auch ein float sein kann d.h. 1234.568
    müsste dann zuerst mit 10000 etc. multiplizieren in Integer umwandeln und dann in den 10'er Schritten versuchen zu teilen - so ginge es.
    Ich hatte zuerst an so etwas wie casten der Datentypen oder die Hilfe eines Arrays gedacht ...


Anmelden zum Antworten