1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
354
354
EMPFEHLEN
-
Tag zusammen,
hat einer eine Idee wieviele Zahlen das sind ? ..
Ich habe 100.000 Zahlen:
von 0 bis 99.999 .
Soweit klar.
Jetzt muss ich jedoch noch dazu zählen, das jede Zahl folgendermaßen gezählt werden kann, hier ein Beispiel anhand der Zahl 6892:
6892
06892
006892
In diesem Beispiel würden bei der Zahl "6892" noch zwei weitere Zahlen dazugezählt werden müssen.
Nun habe ich daher dann eine weitaus höhere Zahl als 100.000 .
Aber wie errechne ich diese Zahl, wenn ich alle zusammenrechnen möchte?
Kennt jemand dafür einen Algorythmus, einen Rechner, irgendetwas ?
Sicherlich gibt es in der Mathematik für diese Rechnung einen Namen, ein Algorythmus. Aber ich kenne mich damit kein bisschen aus.
Ich benötige nur das Ergebnis und vielleicht wenn Ihr wollt auch den Lösungsweg.
Nein, dies ist keine Hausaufgabe, sondern benötige ich für ein Script, welche ich gerade in der Programmiersprache PureBASIC schreibe.
MFG,
Duellking
-
19.04.11 08:47 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ich kenne jetzt zwar PureBasic nur vom Hören aber diesen Code solltest du entsprechend umwandeln können.
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13
maximum = 100000 anzahl = maximum laenge = Len(maximum) For a = 1 To maximum If laenge > Len(a) Then anzahl = anzahl + (laenge - Len(a)) ElseIf laenge = Len(a) Then a = maximum End If Next a MsgBox anzahl
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Ich habe es mal mit einem anderen Ansatz in PHP gelöst
Ausgabe: 211111 (übrigens, genau [Anzahl Ziffern] mehr als die Lösung von tombe)PHP-Code:$max = 100000;
//Array erstellen mit allen Zahlen von 0 bis 10'000
$res = $nums = range(0, $max);
//Für jede Zahelnnlänge die Schleife durchgehen
for($len = 1; $len <= strlen($max); $len++){
//Mit jeder Zahl aus dem ürsprünglichen Range die Länge vergleichen
foreach($nums as $num){
if(strlen($num) < $len){
//Den entsprechenden Wert mit 0 aufgefüllt erstellen
$res[] = str_pad($num, $len, '0', STR_PAD_LEFT);
}
}
}
//Alle Einträge zählen
echo count($res).'<br />';
Wenn ich das mit verschiedenen Zahlen teste:
Code :1 2 3
100'000 = 211'111 20 = 31 551 = 662
Dann komme ich auf die folgende Logik
Code :1 2 3 4 5
[wert] + (Zahl aus 1er-Ziffern in der Länge von [wert]) 100'000 = 211'111 = 100'000 + 111'111 20 = 31 = 20 + 11 551 = 662 = 551 + 111
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
19.04.11 10:04 #4
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Wenn 20 die größte Zahl ist, dann habe ich die Zahlen von 1 bis 20 (ergibt Anzahl = 20).20 = 31
Dann muss ich noch 01, 02, 03, 04, 05, 06, 07, 08, 09 dazu zählen was 9 Zahlen sind.
Somit kommt doch als Gesamtzahl nicht 31 sondern 29 raus.
Bei 551 erhalte ich als Ergebnis 659 (1 - 551 [ = 551 ], 01 - 09 [ = 9 ], 001 - 099 [ = 99 ])Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
19.04.11 11:02 #5
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Bildungsvorschrift: max + Summe(i = 0, i <= floor(log10(max)), 10^i)
@tombe: Du hast 00 vergessen. Außerdem kommt es drauf an ob man die obere Grenze mitzählt oder nicht (in die obere Formel i = 1 oder i = 0 setzen).
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Wieviele Interfaces sind genug
Von kwyjibo_84 im Forum Coders TalkAntworten: 0Letzter Beitrag: 03.05.10, 20:47 -
Wieviele Strings sind im Array?
Von §Alptraum§ im Forum JavaAntworten: 6Letzter Beitrag: 02.05.10, 13:58 -
Logo-Erstellung - wieviele Entwürfe sind zumutbar?
Von 10x10 im Forum Gründung & GewerbeAntworten: 4Letzter Beitrag: 29.04.09, 05:39 -
Listview - Wieviele Zeilen sind vorhanden?
Von D@nger im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 11.04.06, 16:20 -
Befehl -> Wieviele Reihen sind in mySQL db ?
Von BenoX im Forum PHPAntworten: 6Letzter Beitrag: 31.10.04, 11:26





Zitieren

Login





