結果
| 問題 |
No.757 チャンパーノウン定数 (2)
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-12-02 03:09:06 |
| 言語 | Ruby (3.4.1) |
| 結果 |
AC
|
| 実行時間 | 266 ms / 2,000 ms |
| コード長 | 570 bytes |
| コンパイル時間 | 272 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 15,488 KB |
| 最終ジャッジ日時 | 2024-06-27 13:57:33 |
| 合計ジャッジ時間 | 7,300 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 51 |
コンパイルメッセージ
Syntax OK
ソースコード
#!/usr/bin/ruby
starting=1
bse=gets.to_i
while gets
n=$_.to_i(bse)
n+=starting-2
digits=1
expbase=1
if false
while (x=expbase*(digits*(bse-1)))<=n
digits+=1
expbase*=bse
n-=x
end
else
digits=$_.size.downto(0).find{|digits|
z=bse**digits;z*digits-(z-1)/(bse-1)<=n
}+1
#while (z=bse**digits;z*digits-(z-1)/(bse-1)<=n)
# digits+=1
#end
expbase=bse**(digits-1)
n-=(digits-1)*expbase-(expbase-1)/(bse-1)
end
num=expbase+n/digits
d=digits-1-n%digits
if false
d.times{num/=bse}
puts num%bse
else
puts num.to_s(bse)[-d-1]
end
end