現在「プログラマ脳を鍛える数学パズル」という本で書かれているRubyをJavaに変換してプログラムを勉強しています。
自分なりに参考書で書かれたRubyのコードをJavaに変換したつもりなのですが実行結果が異なってしまいます。どこがおかしいのでしょうか?
■要件
フィボナッチ数列のうち、各桁の数字を足した数で割り切れる数を出力したい。
■期待値
2
3
5
8
21
144
2584
14930352
86267571272
498454011879264
160500643816367088
Ruby
1a = b = 1 2count = 0 3while (count < 11) do 4 c = a + b 5 #1桁ずつに分割して各桁の和を取得 6 sum = 0 7 c.to_s.split(//).each {|e| sum += e.to_i} 8 if (c % sum == 0) then 9 #割り切れた場合に出力する 10 puts c 11 count +=1 12 end 13 a,b=b,c 14end
Java
1public class Q11 { 2 3 public static void main(String[] args) { 4 5 int a = 1; 6 int b = 1; 7 int count = 0; 8 9 while (count < 11) { 10 int c = a + b; 11 12 // 1桁ずつに分割して各桁の和を取得 13 int sum = 0; 14 String[] str ; 15 16 str = String.valueOf(c).split("//"); 17 18 for(String e : str) { 19 sum += Integer.valueOf(e); 20 } 21 22 if(c % sum == 0) { 23 system.out.println(c); 24 count += 1; 25 } 26 a = b; 27 b = c; 28 29 } 30 } 31} 32
回答1件
あなたの回答
tips
プレビュー