class Math6 def initialize(a) @a = a end def isDivisor(x) return FALSE if (@a.modulo(x) != 0) return TRUE end def calc result = 0 @a.times { |n| x = n + 1 if (isDivisor(x)) result += x end } return result end end def q1(x, y) obj1 = Math6.new(x) obj2 = Math6.new(y) return obj1.calc - obj2.calc end def q2(x, y) result = Array.new num = 1 cnt = 0 printf("Q2.\n") while (cnt != y) do obj = Math6.new(num) if (obj.calc == x) printf("\t%d\n", num) cnt += 1 end num += 1 end end printf("Q1. <%d> - <%d> = %d\n", 16, 25, q1(16, 25)) q2(24, 3)
Hamamatsu.rb #55
作成日 | : | 2015/08/22 |
---|---|---|
最終更新日 | : | 2020/07/09 |
Hamamatsu.rb #55
作成日 | : | 2015/08/22 |
---|---|---|
最終更新日 | : | 2020/07/09 |
概要
- 日時
- 2015/08/19(水) 19:00 - 21:30
- 会場
やったこと
- 自己紹介
- CodeKataKata
- 小学生がひらめきで解く算数の問題を大人げなくコンピュータで解く!
- または個人でもくもく
- LT
- @risgkさんによる シンセサイザー のLT
- Langurによる エミュレータ のLT
- @ke_tachibanaさんによる Rails5 のLT
- KPT
CodeKataKata
算数オリンピックの問題の続きを選択しました。 今回は2問を実施しました。 私は2問目に入ったところで時間切れでした。
今回、筆記用具を忘れたため考えずにコードを書いたのが反省点です。
問題は以下のとおりです。
- Aは0でない整数とし、<A>はAの約数の和を表すものとします。 たとえば、<8>=1+2+4+8=15 です。
- <16>-<25>を求めなさい。
- <A>=24 となるA は全部で 3個あります。すべて答えなさい。
- 7けたの整数2004□□□は2,3,4,5,6,7,8すべての倍数です。 □□□に入る3けたの整数を求めなさい。
1問目
ソース1. math6_langur.rb
LT
ARMのエミュレータが欲しくなって、練習としてTD4のエミュレータを書いてみました。 結構大変でしたが、RubyでのThreadや同期処理の理解が深まりました。
TD4でも心が折れそうだったので、ARMのエミュレータを本当に作るかどうかは判りません...
資料は後日UPします。
KPT
感想
今回は、多い会でした。
- 参加人数が多い
- 初参加の方が多い
- LTが多い
どれも嬉しい多いです。
@ke_tachibanaさんの発表は、次回続きを聞きたいです。