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さんの発表は、次回続きを聞きたいです。
