【Java】全探索(B - Break Number)
解いた問題
AtCoderの「B - Break Number」
提出した回答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.close(); int result = 1; //出力する値 int counter_max = 0; //2で割れる回数が1番多いときの値 for (int i = 1; i <= N; i++) { int counter_current = 0; //現在のiが2で割れる回数 boolean flag = true; int tmp = i; while (flag) { if (tmp % 2 == 0) { tmp /= 2; counter_current += 1; } else { flag = false; } } if (counter_max < counter_current) { counter_max = counter_current; result = i; } } System.out.println(result); } }
全探索で解いた。
2で割れる回数をカウントして、より2で割れる回数が多いものを採用している。
方法は思いついていないが、途中のwhile文を無くしてすっきりさせたい。
TODO
- 他のA,B問題を解く
おわり。。