[elektro] matek

Papp Zoltán zombi at c2.hu
Fri Aug 27 00:09:13 CEST 2010


2010.08.23. 09:52:35 dátumon vajk fekete <halaloszto at yahoo.co.uk> írta:

> veszel egy 1-et. 10-el szorozgatod addig, amig nagyobb nem lesz a szamnal. ha
> nagyobb lett, akkor eloveszed az elozot, es kivonod belole. ha az elso jegy nem
> biztos hogy egyes, akkor kivonod annyiszor, hogy amig kisebb nem lesz (tehat
> amig a kivonas negativot nem adna)
>
> vajk

Most olvastam a topicot, én ezt csináltam volna:

//definíció:
ulong x; //eredeti szám

//helyiérték megkeresése:
for (ulong i=(ulong)1e9;i>=x;i/=10);

//kivonás, ha biztos, hogy mindig 1 az első szám:
x-=i;

//kivnás, ha nem biztos, hogy 1 az első szám:
while(i>=x) x-=i;


Persze sok függ attól, mire kell optimalizálni. De szerintem gyorsabb, mint a stringgé alakítás. Legalábbis ugyanolyan gyors. Mindkettőben a 10-el osztás a legbonyolultabb.



Üdv

-- 
Papp Zoltán
OneWay Electronics Kft
Hangszerviz
szkájp: oneway[aláhúzás]papp[aláhúzás]zoltan



More information about the Elektro mailing list