class Math1
def initialize(m, n)
@man = m
@ichi = n
end
def calc(num)
result = 1
4.times { |i|
result = result * (num + i)
}
return result
end
def judge(num)
result = self.calc(num)
man = result.to_i / 10000
ichi = result.to_i % 10
if (man == @man && ichi == @ichi)
ret = TRUE
else
ret = FALSE
end
end
def test(n)
n.times { |i|
if (self.judge(i + 1))
return (i + 4)
end
}
return -1
end
end
ret = Math1.new(9, 4).test(20)
p ret if (ret > 0)Hamamatsu.rb #54
| 作成日 | : | 2015/07/09 |
|---|---|---|
| 最終更新日 | : | 2020/07/09 |
Hamamatsu.rb #54
| 作成日 | : | 2015/07/09 |
|---|---|---|
| 最終更新日 | : | 2020/07/09 |
概要
- 日時
- 2015/07/08(水) 19:00 - 21:00
- 会場
やったこと
- 自己紹介
- CodeKataKata
- 小学生がひらめきで解く算数の問題を大人げなくコンピュータで解く!
- LT
- @jacoyutoriusさんによる Rebuild DB のLT
- rebuild.fmをスクレイピングするツールを作った
- KPT
CodeKataKata
算数オリンピックの問題らしいです。 時間内に全5問中3問までは解けました。
問題は以下のとおりです。
- 連続する4個の整数を掛け合わせると積が9□□□4になりました。(それぞれの□に入る数字はわかりません) この連続する4個の整数のうち、最大の数はいくつですか?
- 1段目は1×1個、2段目は2×2個のレンガを使い、200段のピラミッドを作るとき、 使われているレンガの数は全部で何個?
- 1×2×3×4×5×・・・ と順に1ずつ大きな整数をかけていきます。 この積について、次の問に答えなさい。
- 積を2で7回割った商が初めて整数になるのは、いくつまでかけたときですか。
- 積を6で14回割った商が初めて整数になるのは、いくつまでかけたときですか。
- 1,2,3,4 のいずれかの数字を使って4ケタの整数を作ります。 同じ数字を何度使ってもかまいません。次の問に答えなさい。
- 整数は全部で何個できますか。
- できたすべての整数の一の位の数の和を求めなさい。
- できたすべての整数の和を求めなさい。
- ある直方体の高さはたてより1cm長く、横より1cm短いです。 その体積は3□□□□□26c㎡です。(5個の□の数はわかりません) この直方体の高さは何cmですか。
1問目
ソース1. 1問目の回答
2問目
ソース2. 2問目の回答
class Math2
def initialize(num)
@max = num
end
def calc
result = 0
@max.times { |i|
result = result + ((i + 1) * (i + 1))
}
return result
end
end
p Math2.new(200).calc3問目
ソース3. 3問目の回答
class Math3
def initialize(m, n)
@ans = m ** n
end
def fact(n)
return 1 if (n == 0)
n * fact(n - 1)
end
def calc
i = 1
loop {
result = self.fact(i) % @ans
if (result == 0)
return i
end
i = i + 1
}
end
end
p Math3.new(2, 7).calc
p Math3.new(6, 14).calcKPT
感想
今回は、皆さんもくもくとコードを書いているように感じました。 算数ネタは頭の体操になります。
ソースコードをレビューするための簡単なコード共有ツールがあると良いのかなぁと思いました。 Railsで作れるのかなぁ?
