• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

asciiziffern eines strings zusammenzählen & quersumme ma

Status
Für weitere Antworten geschlossen.

Fätzminator

Neues Mitglied
asciiziffern eines strings zusammenzählen & quersumme ma

hallo zusammen

ich habe wieder einmal so eine einfach doofe frage ^^

ich habe einen string wie zb "test"...
jetzt will ich von jedem zeichen den ascii code nehmen...
von dem wiederum will cih die quersumme errechnen, bis diese zahl nur noch 2-stellig ist...

wie kann ich das am einfachsten bewerkestelligen?
hier ein bsp:
string = test
= 116 + 101 + 115 + 116
= 448
= 16 (quersumme)
= 16 (nur noch 2-stellig)

mfg, fätzminator
 
Code:
$str = 'test';

$l = strlen($str);
$s = 0;
for ($i = 0; $i < $l; $i++) $s += ord($str{$i});

while ($s > 100) {
	$t = 0;
	while ($s > 0) {
		$t += $s % 10;
		$s = $s / 10;
	}
	$s = $t;
}

echo '=> '.$s."\n";

iss jetzt nicht wirklich getestet, bei 'test' kommt aber 16 raus ;Jump
verbesserungsvorschläge sind jederzeit willkommen
 
die ascii zeichen liegen auf dem spectrum von 0-255 das ist genau der breich welcher in hexdazimal durch 00-FF abgedeckt wird sprich du erhälst immer 2 stellige zahelne...
 
ja das weiss ich... (ich werd api :wink: )
abr ich will es ja nicht einfach abschneiden sondern erneut die quersumme ziehen... (die quersumme einer 10er reihe... und nicht einer 16er...)
 
ups, es muss
Code:
while ($s >= 100) {
heissen.

modulo 99 stimmt nicht ganz 111 % 99 = 12, die quersumme ist aber 3.
die schleife nimmt durch die modulo 10, bzw div 10 jeweils die letzte stelle und addiert die auf. quersumme bilden halt... :mrgreen:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben