Aus 1000000 die 300003 Ziffer herausfinden.

Also ich hatte schon eine Idee aber irgend wie will die nicht so wie ich das gerne hätte

hir mal mein erster Versuch
PHP:
<?php
$a;
for($i=0;$i<1000000;$i++)
{
	$a.=$i;
	if(strlen($a)==300003)
	{
		echo $i;
	}
}
?>
 
Ich will die 300003 Ziffer wissen.
Also von 1 Million wird aufgeschrieben 12345678910111213141516 usw halt bis 1000000 und dann soll die 300003 Ziffer heraus gefunden werden.

So wie die 400004 die 500005 und die 600006
 
PHP:
$zahl = '300003';
for($i = 0; $i < 1000000; $i++)
{
  if($i == $zahl)
    echo $i;
}

Eine [phpf]for[/phpf]-Schleife und ein [phpf]if[/phpf]-Konstrukt.
Mit [phpf]strlen[/phpf] erfährst du die Länge eines Strings, aber nicht dessen Wert, den du hier im Vergleich aber brauchst.
Wenn du jetzt mehre Werte suchst, empfehle ich dir einen Array zu nutzen und dir die Funktion [phpf]in_array[/phpf] anzuwenden.
 
Okay danke für deine Antwort aber das Ergebnis ist da 300003 und das ist die 300003 Zahl nicht die Ziffer wie ich das haben wollte.

Ich erkläre mal wie ich es mir dachte.

Erst mal wird alles in die Variable $a geschrieben 1234567891011121314151617181920 usw
dann wird mit strlen die länge also die anzahl der Ziffern ermittel und dann mit der If abfrage die passende Ziffer herausgesucht.
 
Also, du hast ein String der 1Mio Ziffern besitzt. Und du willst die Ziffer an Position 3000003.
Ich mal mal ein kleines Beispiel mit 30 Zeichen...

PHP:
//Test mit 30 Zahlen
$string = '123456789012345678901234567890';
//gesuchte Position
$pos = 14;
//Ziffer auslesen (Ein String kann als Array einzelner Zeichen gehandelt werden)
$digit = $string[$pos-1];
echo $digit;
//gibt 4 zurück
 
Also, du hast die Variable $a, die mit allen natürlichen Zahlen bis n gefüllt ist, mit [phpf]strlen[/phpf] bekommst du dann die Anzahl der Ziffern... Und dann möchtest du die Zahl an der Stelle X haben? Oder die Stelle X wo die Zahl Y auftaucht?

Entweder mit [phpf]strpos[/phpf] arbeiten oder du verwendest die Möglichkeit einen String wie einen Array zu nutzen.


PHP:
$string = '012345678910111213';
echo $string[5];
 
Zurück