締め切りが 12月02日(水)AM10:00 なので,締め切り 1 分後に予約投稿。
図のような7セグメントディスプレイを使ったデジタル時計があります。
ある時刻において、点灯している位置の数を調べます。
例えば、12:34:56(12時34分56秒)の場合は、以下のように27箇所が点灯しています。
ここでは、逆に考えて、点灯している箇所の数から時刻を調べることにします。
ただし、53:61:24 のような場合は、27箇所が点灯しますが、時刻としてありえないため、対象にはなりません。
※このデジタル時計は24時間表示で、23時59分59分まで表示します。
例えば、27箇所が点灯するような時刻は上記を含めて8800通りがあります。
標準入力から整数nが与えられたとき、このデジタル時計でn箇所が点灯するような時刻が何通りあるかを標準出力に出力してください。
con = file("stdin", "r"); n = as.integer(readLines(con, 1))
segments = c(6, 2, 5, 5, 4, 5, 6, 3, 7, 6)
g = function(i) {
sum(segments[as.integer(unlist(strsplit(sprintf("%02i", i), "")))+1L])
}
ct = integer(60)
for (i in 0:59) ct[i+1] = g(i)
count = 0
for (h in 1:24) {
for (m in 1:60) {
for (s in 1:60) {
count = count + (sum(ct[c(h, m, s)]) == n)
}
}
}
cat(count)
最新の画像[もっと見る]
- 算額(その1387) 22時間前
- 算額(その1384) 2日前
- 算額(その1383) 2日前
- 算額(その1382) 2日前
- 算額(その1380) 3日前
- 算額(その1379) 4日前
- 算額(その1378) 4日前
- 算額(その1377) 4日前
- 算額(その1376) 4日前
- 算額(その1375) 4日前
※コメント投稿者のブログIDはブログ作成者のみに通知されます