# Zahlen verdoppeln



## Woltlab (13. Nov 2010)

```
procedure Duplieren
Input: Dezimalziffern zn-1,...z1, z0 der Zahl z
c := 0
i := 0
while i < n do
d := zi + zi + c
if d < 10
then
print d // Ausgaberichtung: links
c := 0
else
print d - 10 // Ausgaberichtung: links
c := 1
i := i + 1
if c ungleich 0
then print c // Ausgaberichtung: links
```

Kann mir jemand erklären, warum die Einer- und die Zehnerstelle korrekt ermittelt wird??? Das Programm kommt auch ohne Divisionsrest und Abrundungsfunktion aus.

Ich weiß bisher das der Übertrag höchstens 1 sein kann. 9+9=18

Aber mehr kann ich dazu nicht sagen.


----------



## XHelp (13. Nov 2010)

Was genau verstehst du daran nicht? Jede Stelle wird verdoppelt und es wird mit Übertrag gearbeitet.


----------



## Final_Striker (13. Nov 2010)

Woltlab hat gesagt.:


> ```
> Ich weiß bisher das der Übertrag höchstens 1 sein kann. 9+9=18
> [/QUOTE]
> 
> ...


----------



## Woltlab (13. Nov 2010)

Was ist denn zum Beispiel n in der while-Schleife wenn ich als Zahl 10 eingebe.

Kann nicht so gut Mathe. Was bedeutet denn zn-1


----------



## XHelp (13. Nov 2010)

Final_Striker hat gesagt.:


> und der Rest ist dann 18 - 10 also 8


Nö, du schreibst 8 hin und 1 ist dein Übertrag. Wie in der Schriftlichen addition (was ja nichts anderes ist).



Woltlab hat gesagt.:


> Was ist denn zum Beispiel n in der while-Schleife wenn ich als Zahl 10 eingebe.
> 
> Kann nicht so gut Mathe. Was bedeutet denn zn-1



Du gibst die zahk nicht als ganzes hin, sondern als einzelnte Stellen:

```
z = 4567
z+z=9134

z0 = 7
z1 = 6
z2 = 5
z3 = 4
c  = 0
z0 + z0  + c = 7 + 7 + 0 = 14
4 ausgeben, c = 1
z1 + z1 + c = 6 + 6 + 1 = 13
3 ausgeben, c = 1
z2 + z2 + c = 5 + 5 + 1 = 11
1 ausgeben, c = 1
z3 + z3 = 4 + 4 + 1 = 9
9 ausgeben
```

Genau so würdest du es machen, wenn du es schriftlich rechnen würdest.


----------



## Final_Striker (13. Nov 2010)

Woltlab hat gesagt.:


> Was ist denn zum Beispiel n in der while-Schleife wenn ich als Zahl 10 eingebe.
> 
> Kann nicht so gut Mathe. Was bedeutet denn zn-1



dann ist n = 2 ;-)


----------

