結果
| 問題 |
No.47 ポケットを叩くとビスケットが2倍
|
| ユーザー |
sironekotoro
|
| 提出日時 | 2018-12-12 14:22:13 |
| 言語 | Perl (5.40.0) |
| 結果 |
AC
|
| 実行時間 | 6 ms / 5,000 ms |
| コード長 | 867 bytes |
| コンパイル時間 | 269 ms |
| コンパイル使用メモリ | 6,944 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-25 03:33:32 |
| 合計ジャッジ時間 | 1,002 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 21 |
コンパイルメッセージ
Main.pl syntax OK
ソースコード
use strict;
use warnings;
use v5.16;
# https://yukicoder.me/problems/89
# 欲しいクッキーの数
my $want = <>;
# my $want = 4;
chomp $want;
# ポケットの中のクッキーの数
my $cookie = 1;
# ポケットを叩いた回数
my $count = 0;
# ループ内でぴったり欲しいクッキーの枚数に
# ならなくとも、最終的に欲しい枚数になれば良い
#
# 1000枚の場合
# 1 2 4 8 16 32 64 128 256 512
# ここまでで9回、残りは488枚
# 1000 - 512 = 488
#
# 残り488枚は 現在の512枚のうち488枚を抜いて
# ポケットで叩く
# ( 512 - x ) + 2x = 1000
# x = 488
#
# 問題で問われているのは「何回叩いたか?」なので
# 最後に何枚を調整で叩いたかは問われていない
while (1) {
last if ( $want <= $cookie );
$cookie = $cookie * 2;
$count++;
}
say $count;
sironekotoro