Here are mine,
Update : since I didn't understand anyone elses (give or take) I've added explanations to mine
The first is obvious (51 chars)
The second is stated in a couple different ways (43 chars, 50 chars obfu'd)
sub obvious{
# (explained : count from zero until Z, return the current count if w
+e found the position we are looking for)
# 1 2 3 4 5 6
#23456789012345678901234567890123456789012345678901234567890
$n=pop;for(;$n ne((0..9),(A..Z))[$a];$a++){}"$a"||0;
}
This one is more fun, it uses bitwise arithmatic to get the solution. The commented line is the same as the first, but more obfu
sub fun {
# (explained : reduce the numbers to their base2 (binary)
# representation. we always care about the
# lowest four bits ($n & 0x1111 is $n & 15). If the ord of
# the number is in the A-Z range the 7th bit will be set
# ($n >> 6) will be true. In this case, also include the
# 6th bit in the number ($n & 31) instead of ($n & 15).
# Since A-Z starts at ten, add 9 as well)
# 1 2 3 4 5 6
#23456789012345678901234567890123456789012345678901234567890
$n=ord(pop);$a=($n>>6)?(($n&31)+9):($n&15);
# same thing, but obfu
# $n=ord(pop);$a=($n&(1<<(4+($n>>6)))-1)+($n>>6&&9);
}
Enjoy, or not, at your leisure.
-jackdied
PS, posting with mozilla is the biggest pain in the ass ever. It tries to do smart things with wrapping in a text box, and translating spaces and returns for you with some AI that makes posting code hell.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.