結果

問題 No.47 ポケットを叩くとビスケットが2倍
ユーザー sianf
提出日時 2017-02-06 23:12:17
言語 Go
(1.23.4)
結果
AC  
実行時間 46 ms / 5,000 ms
コード長 432 bytes
コンパイル時間 14,464 ms
コンパイル使用メモリ 221,280 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-12-24 08:40:15
合計ジャッジ時間 15,763 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import "fmt"

func main() {
	var N int
	fmt.Scan(&N)

	var current = 1
	var count int
	for count = 0; current != N; count++ {
		current = tap(current, N)
	}
	fmt.Println(count)
}

func tap(current, target int) int {
	var NUM int

	if current*2 <= target {
		NUM = current * 2
	} else {
		for i, j := current-1, 1; i > 0; i, j = i-1, j+1 {
			if j+i*2 <= target {
				NUM = j + i*2
				break
			}
		}
	}

	return NUM
}
0