Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Re: Re: First JAPH - Spell perl in two hundred and eighty five thousand and seventy four easy steps

by holonaut (Initiate)
on Sep 11, 2002 at 18:31 UTC ( [id://197029]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: First JAPH - Spell perl in two hundred and eighty five thousand and seventy four easy steps
in thread First JAPH - Spell perl in two hundred and eighty five thousand and seventy four easy steps

Wow. That can take a really long time to count. This little bit o' code is much faster.
#!/usr/bin/perl -w # Convert pseudo-base26 number (digits: a-z) to decimal # really intended to find the ending number needed in # the for loop for any given string to be used my $num = 0; my $char = "a"; my $answer = 0; until ($char eq "aa") { $equiv{$char}=$num; $num++; $char++; } print "Enter your lowercase string: "; chomp($string = <STDIN>); @strArray=reverse(split(//,$string)); for ($i = 0; $i < @strArray; $i++) { $answer += ($equiv{$strArray[($i)]} * (25 ** $i)); } print --$answer;
  • Comment on Re: Re: Re: First JAPH - Spell perl in two hundred and eighty five thousand and seventy four easy steps
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: Re: First JAPH - Spell perl in two hundred and eighty five thousand and seventy four easy steps
by admiraln (Acolyte) on Sep 11, 2002 at 20:47 UTC
    I tried the code and it did not work. After a little experimenting following code did work. I added the orignal one liner to the generator to validate it. The mistakes that I saw were two fold. First base should have be 26 not 25. Second the magical text increment behavior is not equivalent to incrementing numbers.
    9 goes to 10
    z goes to aa  not a0 
    
    as a result the equivs have to run a-z === 1-26 not 0-25 and the answer offset is 2 not 1.
    #!/usr/bin/perl -w # Convert pseudo-base26 number (digits: a-z) to decimal # really intended to find the ending number needed in # the for loop for any given string to be used my $num = 1; # was $num = 1 my $char = "a"; my $answer = 0; until ($char eq "aa") { $equiv{$char}=$num; $num++; $char++; } print "Enter your lowercase string: "; chomp($string = <STDIN>); @strArray=reverse(split(//,$string)); for ($i = 0; $i < @strArray; $i++) { $answer += ($equiv{$strArray[($i)]} * (26 ** $i)); # was 25 ** $i } $offset = $answer - 2; print $offset,"\n"; my $A="a";for(0..$offset){$A++;}print"$A";

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://197029]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2024-04-23 11:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found