■ 累乗

今度は冪乗(累乗)です。これは結構あちこちにサンプルプログラムがあるのですが、
Rubyが多桁計算に対応しているのに初めて気づきました。1000の1000乗でもあっさり
計算してくれます。(もっといけるようですが、本当に計算があってるのか自信あり
ません)

まず、basic です。
----------------------------------------
1.basic
----------------------------------------
  10   '累乗
   20   input "a=";A
   30   input "b=";B
   40   X=1
   50   while B<>0
   60   if B@2=1 then X=X*A
   70   B=B\2
   80   A=A*A
   90   wend
  100   print "a^b=";X
  110   end

---------------------------------------
 

2.Perl
---------------------------------------
#!/usr/bin/perl

$a=$ARGV[0];
$b=$ARGV[1];
$c=$a;
$d=$b;
$x=1;
while ( $b !=0){
  if ($b%2==1) {$x=$x*$a};
  $b=$b/2;
  $a=$a*$a;
}
print "$c^$d=$x\n"
---------------------------------------
3.Ruby
---------------------------------------
#!/usr/local/bin/ruby

print "a="
a=readline().to_i
c=a
print "b="
b=readline().to_i
d=b

x=1

while b!=0
  if b%2==1
     x=x*a
  end
  b=b/2
  a=a*a
end
print c
print "^"
print d
print "="
print x
print "\n"
-----------------------------------
下のほうの、print の繰り返しは不細工ですので、printf を使うべきだったでしょうか。