裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ディジタル時計

2015年12月02日 | ブログラミング

締め切りが 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)

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« フェイスブック利用者 | トップ | 「ツイン・トライアングル」... »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事