今度は冪乗(累乗)です。これは結構あちこちにサンプルプログラムがあるのですが、
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 を使うべきだったでしょうか。