[Hilfe] Division Rechenprogramm mit Rest = 0 ?

phpMars

Erfahrenes Mitglied
Ich möchte ein kleines Konsolen Programm schreiben, welches eine Rechenoperation mit Variablen durchführt.

Ich brauche eine Variable, die Schritt für Schritt hochzählt. Dabei soll immer die Quersumme von der Zahl gebildet werden. Die Quersumme soll in einer Neuen Variable gespeichert werden.

Das sieht dann z.B. so aus:

zahl1 = zahl1++;
quersummezahl1 = quersumme von zahl1;


Die Variable mit der Quersumme soll dann durch eine Zahl dividiert werden, welche vorher vom Benutzer eingegeben wurde.
Also:

ergebnis = quersummezahl1 / eingegebeneZahl;

Das soll sollange gemacht werden bis das Ergebnis = 0 ist.

Mein Problem liegt jetzt darin, wie ich die Quersumme ausrechnen kann ?
Ist es irgendwie möglich aus einer Integer Zahl die Quersumme zu bilden ?
 
Hi.
phpMars hat gesagt.:
Ist es irgendwie möglich aus einer Integer Zahl die Quersumme zu bilden ?
Sicher. Dazu schreibst du dir am besten eine Funktion die das kann. Du mußt einfach nur (solange die Zahl nicht 0 ist) die rechte Ziffer herausfinden (Tip: Modulo 10), zu einer Variable dazuzählen und dann von der Originalzahl eine Stelle abschneiden (Tip: Division durch 10).

/edit: Übrigens gilt (für pos. Zahlen) quersumme(x + 1) == quersumme(x) + 1

Gruß
 
Zuletzt bearbeitet:
Also es gibt keine fertige Funktion dafür ?

Wie könnte das Aussehen ?

Code:
do
	{
		einer++;
		
		if(einer == 9)
			zehner++;
			einer = 0;

		if(zehner == 9)
			hunderter++;
			zehner = 0;
			einer = 0;
                           
                                  //usw.
                                 

                       quersumme = einer + zehner + hunderter + ...
	}
	while(Bedinungun);


so ?
 
Nein. Viel zu kompliziert. Ich hab's dir doch schon hingeschrieben - du hättest nur noch Code draus machen müssen. *seufz* Na, gut:
Code:
int quersumme(int n) {
  int summe = 0;

  while (n != 0) {
    result += n % 10;
    n /= 10;
  }
  return summe;
}

Gruß
 
Ok da ich eine bestimmte Zahl suche, deren Quersumme durch x teilbar ist und ich gerade festegestellt habe, dass ich Opa bin bis er die Zahl gefunden hat, hat es sich erledigt
 
Was hast'n du für'n Rechner, i386 10 MHz?

Das sollte eigentlich relativ schnell gehen. Evlt. hast du ja 'nen Überlauf drin bzw. eine Endlosschleife?

Übrigens, das mit meiner Idee aus dem editierten Bereich von meiner ersten Antwort ist natürlich Quatsch. :-(

Gruß
 
Nein, hab bissel was schnelleres *g*
Aber habe festgestellt das die erste Lösung 223 Stellen hat und nur 9er besitzt.
Aber die eigentliche die ich suche wahrscheinlich über 446 Stellen hat.
 
Aha. Na da kommst du dann sowieso mit den Standardmitteln von C/C++ nicht weit - so große Zahlentypen gibt es ja nicht. Wie hast du das denn dann eigentlich festgestellt?

Evtl. ist es ja am besten wenn du mal die Aufgabe bzw. das Problem hier genau schilderst - evtl. gibt es ja eine einfache Lösung... :)

Gruß
 
Zurück