Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-09-2003, 11:08   #1 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
Math.quersumme....

Hi Flasher,
Wie kann man um eine Quersumme auszurechnen lesen, wieviel Stellen eine Zahl hat.
Math.length geht ja nicht...
Also :
22 = 1;
222 = 2;
2222 = 3;

Gr33tz MacEvil
MacEvil ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:10   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
variabel.toString().length
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:12   #3 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Die Vorgehensweise wäre
- die Zahl in einen String zu wandeln (string)
- den String in Einzelteile zu zerlegen (split) -> Sind dann in einem Array
- Die Elemente des Arrays zusammenzurechnen, dabei aber nicht vergessen, die einzelnen Einträge wieder in Zahlen zu wandeln (Number)

Eine direkte Möglichkeit kenne ich leider nicht - lass mich aber gerne korrigieren.

Gruß
rena
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:13   #4 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
Hey, lol bin ich dumm *nerv* - logisch.
Danke Scrawer, bist heut ein armer, alle wollen was von dir

@ rena :
-> Scrawer Post
MacEvil ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:15   #5 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
nicht so schlimm wenn ich nicht mehr mag... dreh ich einfach ab
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:22   #6 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
hehe
Oje... langsam wird's peinlich was ich heut alles nicht weiss - man weiss nie alles :
Kann ich den folgenden Code auch dynamischer machen ? Ich will ja nicht für jede Stelle den gleichen Code neu tippen :
ActionScript:
  1. Math.quersumme = function(number) {
  2.     stellen = number.toString().length;
  3.     for (i=0; i<stellen; i++) {
  4.         x = parseInt(number.toString().charAt(i))+parseInt(number.toString().charAt(i));
  5.     }
  6.     return x;
  7. };
Ich müsste mit den Code oben für jede Stelle
ActionScript:
  1. parseInt(number.toString().charAt(i))
schreiben.
Das mit der Schleife funtz irgendwi nicht
MacEvil ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:26   #7 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
meinst so
ActionScript:
  1. for (i=0; i<stellen; i++)
  2. {
  3. x += parseInt(number.toString().charAt(i));
  4. }
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:31   #8 (permalink)
Revived @ Sunday
 
Benutzerbild von MacEvil
 
Registriert seit: Apr 2003
Ort: Nowhereland
Beiträge: 3.244
< Ermahnung >
MacEvil warum bist du so dumm heute ?

</Ermahnung>
Dank dir, Scrawer
MacEvil ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:32   #9 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:37   #10 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Ich würde dennoch empfehlen, die Umwandlerei (zahl-> String -> Einzelzahlen) am Anfang in einem Aufwasch zu erledigen, mit welchen Befehlen auch immer. Ansonsten muß das Umwandeln ja bei jedem forschleifendurchlauf erneut "abgearbeitet" werden. Ist sicher nicht schlimm - aber bei zig zwanzigstelligen Zahlen könnte sich das auf Dauer doch summieren ... ungetestet, nur so rein von der Logik und dem Gefühl her.

Gruß
rena

PS: Mit "direkter Möglichkeit" meinte ich, die Länge (und auch die Quersumme) direkt im Variablentyp Zahl zu ermitteln.
__________________
www.rena-hermann.de

The angels have the phone box
rena ist offline   Mit Zitat antworten
Alt 07-09-2003, 11:53   #11 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
zu optimieren gäbe es hier viel.. richtig....
ActionScript:
  1. var str = new String(number.toString());
  2. for (i=0; i<stellen; i++)
  3. {
  4.         x += parseInt(str.charAt(i));
  5. }
bringt sicher schon viel an mehr leistung
zum einen muss nicht immer toString ausgeführt werden.. und durch new String gibt es auch kein typCasting
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (07-09-2003 um 11:55 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 07-09-2003, 12:18   #12 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
ich wuerde es in der richtung machen:
ActionScript:
  1. Math.crossfoot = function(n) {
  2.     var k = n.toString().split("");
  3.     for (var i in k) {
  4.         u += int(k[i]);
  5.     }
  6.     return u;
  7. };
  8. // test
  9. myNum = 46372;
  10. trace(Math.crossfoot(myNum));//=22
  11.  

Geändert von thorben.schmitt (07-09-2003 um 12:20 Uhr)
thorben.schmitt ist offline   Mit Zitat antworten
Alt 30-04-2007, 08:24   #13 (permalink)
Hmmmmmm
 
Registriert seit: Apr 2002
Beiträge: 86
Da ich die beiden oberen Ansätze nicht direkt zum laufen gebracht habe, poste ich noch meine Lösung. Ein Mix aus den beiden oberen Ansätzen.

PHP-Code:

crossfoot 
= function (n:Number) {
    var 
u:Number 0;
    var 
k:Array;
    
String(n).split("");
    for (var 
i in k) {
        
+= parseInt(k[i]);
    }
    return 
u;
};

myNum 46372;
trace(crossfoot(myNum)); 
tOmek ist offline   Mit Zitat antworten
Alt 30-04-2007, 12:13   #14 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
Code:
fQuersumme = function (z) {
 var s = 0;
 while (z) {
  s += z%10;
  z = int(z/10);
 }
 return Math.abs(s);
};
trace(fQuersumme(46372));
Edit: typisierung rausgeschmissen - obwohl das von 2003 bis heute schon möglich sein sollte AS2 zu benützen ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (30-04-2007 um 12:24 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 30-04-2007, 12:19   #15 (permalink)
meistens harmlos
 
Benutzerbild von rena
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 17.643
Kurze Anmerkung zu den Lösungsvorschlägen der beiden Vorposter:
AS1 dürfte damit Probleme haben.

Gruß
Rena

PS: Was da immer für Uralt-Threads ausgegraben werden...
Ich schätze mal, die ursprünglichen Ansätze funktionierten bis Flash6/AS1
__________________
www.rena-hermann.de

The angels have the phone box

Geändert von rena (30-04-2007 um 12:24 Uhr)
rena ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele