PHP - Ziffernsumme berechnen?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_ziffernsumme_berechnen_178359/page_1 - zur Vollversion wechseln!


n4plike schrieb am 28.03.2007 um 15:08

Hi Leute...

ich verzweifle daran in PHP aus 3 Zahlen beliebiger Länge eine Ziffernsumme zu errechnen..


Code:
while ( $x > 9 ) 
 {
 $x = ($x-10);
 $z++;
 }

aber das geht nur bei 2-stelligen Zahlen....


need help

tia, n4plike


mat schrieb am 28.03.2007 um 15:15

auf stringbasis (per character) berechnen ist einfacher ;)


n4plike schrieb am 28.03.2007 um 15:16

Zitat von mat
auf stringbasis (per character) berechnen ist einfacher ;)

:confused: .... der smiley sagt alles aus...

charakter definier ich mal als char ...

aber wie soll ich das so machen?


mat schrieb am 28.03.2007 um 15:28

so:

Code: PHP
function checksum($n)
{
	$nLen    = strlen($n);
	$nResult = 0;

	for ($i=0;$i != $nLen;$i++)
		$nResult += (int) substr($n,$i,1);

	return $nResult;
}

echo "Ziffernsumme: ".checksum(1234);


Geigerzeiger schrieb am 06.04.2007 um 00:42

Du vergisst beim substr() , dass du die i. Stelle des strings
einen ASCII Code zurückbekommst und du den mit ASCII Wert '1' (musst halt in der ASCII Tabelle nachsehen) subtrahieren musst um auf den tatsächlichen wert zu kommen.


mat schrieb am 06.04.2007 um 03:53

wen oder wtf meinst du?

wie auch immer, bei substr liegst du falsch:

Zitat
string substr ( string string, int start [, int length] )


smashIt schrieb am 06.04.2007 um 04:24

Zitat von n4plike
Code:
while ( $x > 9 ) 
 {
 $x = ($x-10);
 $z++;
 }

ich könnt mich irrn aber wennst aus $x-10 n $x/10 machst berechnest zumindest mal die anzahl der stelln.
für die ziffernzumme (is doch das selbe wie die quersumme, oder?) brauchst aber n modulo-operator

in c (kann sogut wie garnix php-mäßig) sollts dann so aussehn:
Code:
do{
 z=z+(x%10);
 x=(x/10);
}while(x>0)
vorausgesetzt x is ne positive int




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026