結果

問題 No.47 ポケットを叩くとビスケットが2倍
ユーザー velfare_nagata
提出日時 2016-10-03 21:47:26
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 25 ms / 5,000 ms
コード長 1,478 bytes
コンパイル時間 2,135 ms
コンパイル使用メモリ 107,160 KB
実行使用メモリ 26,076 KB
最終ジャッジ日時 2024-11-21 15:21:34
合計ジャッジ時間 3,252 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;
using System.Diagnostics;

namespace CodeIq
{
	internal class Program
	{
		///<summary>
		/// Saraは、「ふしぎなポケット」を手に入れた。
		///
		/// 「ふしぎなポケット」は、いくつかビスケットを入れて叩くと、入れたビスケットの数が2倍になる。
		/// Saraは最初1枚のビスケットを持っていて、「ふしぎなポケット」を使ってちょうどN枚のビスケットにして、全部食べたいと思っている。
		/// (食べきれないので枚数をオーバーしてはいけない)
		/// 
		/// この時、ちょうどN枚にするには、Saraは最低何回ポケットを叩く必要があるか求めてください。
		/// </summary>
		private static void Main()
		{
			// パラメータ取得
			var line = Console.ReadLine();
			//var line = "3";
			if( string.IsNullOrEmpty( line ) )
				return;
			var paramData = line.Split( ' ' );
			var n = int.Parse( paramData[0] );

			// クッキーの数がNを超過しないように都度「ふしぎなポケット」にクッキーを入れられるだけ入れて叩く
			var cookieCount = 1;
			var hitCount = 0;
			while( cookieCount != n )
			{
				var wantCookieCount = ( n - cookieCount );
				var pocket = ( wantCookieCount < cookieCount ) ? wantCookieCount : cookieCount;
				cookieCount += pocket;
				hitCount++;
			}

			Debug.Print( hitCount.ToString() );
			Console.WriteLine( hitCount );
		}
	}
}
0