結果

問題 No.793 うし数列 2
ユーザー betrue12betrue12
提出日時 2019-02-22 22:38:10
言語 Ruby
(3.3.0)
結果
AC  
実行時間 78 ms / 2,000 ms
コード長 540 bytes
コンパイル時間 220 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,416 KB
最終ジャッジ日時 2024-05-04 03:46:31
合計ジャッジ時間 3,179 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 74 ms
12,160 KB
testcase_01 AC 76 ms
12,160 KB
testcase_02 AC 77 ms
12,160 KB
testcase_03 AC 75 ms
12,160 KB
testcase_04 AC 75 ms
12,288 KB
testcase_05 AC 78 ms
12,160 KB
testcase_06 AC 76 ms
12,160 KB
testcase_07 AC 75 ms
12,288 KB
testcase_08 AC 76 ms
12,416 KB
testcase_09 AC 75 ms
12,160 KB
testcase_10 AC 76 ms
12,288 KB
testcase_11 AC 76 ms
12,160 KB
testcase_12 AC 76 ms
12,160 KB
testcase_13 AC 75 ms
12,160 KB
testcase_14 AC 75 ms
12,160 KB
testcase_15 AC 74 ms
12,160 KB
testcase_16 AC 75 ms
12,160 KB
testcase_17 AC 76 ms
12,288 KB
testcase_18 AC 74 ms
12,288 KB
testcase_19 AC 75 ms
12,160 KB
testcase_20 AC 76 ms
12,160 KB
testcase_21 AC 74 ms
12,288 KB
testcase_22 AC 76 ms
12,160 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

n = gets.to_i
MOD = 1000000007

def power_mod(num, power)
    prod = 1
    num %= MOD
    while power > 0 do
        if power & 1 == 1
            prod = (prod * num) % MOD
        end
        num = (num * num) % MOD
        power >>= 1
    end
    return prod
end

ans = power_mod(10, n)

base = 1
digit = 1
result = 3
while n > 0
    if n%2 == 1
        ans = (ans + base * result) % MOD
        base = base * power_mod(10, digit) % MOD
    end
    result = result * (1 + power_mod(10, digit)) % MOD
    digit *= 2
    n /= 2
end
puts ans
0