ist die Quersumme nicht immer einstellig
Nö: 888 = 24
Naja, auf dem Wikipedia Artikel stehen eine Menge Quersummen, ich kan mich aber auch erinnern, das wir Quersummen in der Schule immer auf eine Stelle berechnet haben.
aber da reicht ja dann eine zusätzlich Zeile:
if(quer > 10 ) quer = quer.quersumme();
for (var i=0, q=0; i<z.length; q+=parseInt(z.charAt(i++)));
return(q);
Diese Version ist im FF ungefähr 3-4 mal so langsam wie meine im IE sind es nur noch 50%
~~~javascript
Number.prototype.quersumme = function()
{
var z = this.toString().split('');
for (var i=0, q=0; i < z.length; q +=z[i++]-0);
return q;
}
Number.prototype.quersumme2 = function()
{
var z = this.toString();
for (var i=0, q=0; i<z.length; q+=parseInt(z.charAt(i++)) );
return (q);
}
var test = 1233767867348;
var c = 7000;
var t1 = new Date();
for(var i = 0; i < c; i++)
{
var tmp = test.quersumme();
}
var t2 = new Date();
for(var i = 0; i < c; i++)
{
var tmp = test.quersumme2();
}
var t3 = new Date();
alert(
'quersumme:' + ( t2 - t1 ) + '\n'
+ 'quersumme2:' + ( t3 - t2 ) + '\n'
);
Da ham'wer jetzt aber alles rausgeholt, was ging ;-)
Struppi.
--
Javascript ist toll (Perl auch!)
Javascript ist toll (Perl auch!)