2014年3月15日土曜日

AOJ 0015 ruby

AOJの0015、80桁までの足し算をする問題
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0015



前回、Cで挑戦してtime limit exceededになってしまったやつです。

そこで今勉強中のRubyで試しに書いてみたのですが、Rubyってメモリの許す限りいくらでも大きな整数が扱えるんですね。これなら80桁でも800桁でも問題ありません。いや、800桁の方は知りません。Cで書いたときはなんか100行越えてたのに…。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = gets.to_i
 
for i in 0..(n-1) do
 num1 = gets.to_i
 num2 = gets.to_i
 
 sum = num1 + num2
 
 if sum >= 10**80
  puts "overflow"
 else
  puts sum
 end
  
 
end

.classでインスタンスのクラス名取得できるから、変数の数増やしながらクラス名取得すると途中で型(?)が変わってるのがわかっておもしろいっぽいです。

0 件のコメント:

コメントを投稿