작성일 :

문제 링크

8719번 - Piłeczka

설명

공이 떨어지는 위치에서 떨어진 후, 반사되어 목표 높이까지 도달하는 데에 필요한 튕김 횟수를 계산하는 문제입니다.

목표 높이가 초기 위치보다 작거나 같은 경우, 튕겨지지 않더라도 목표 높이에 도달하게 되므로, 튕김 횟수는 0 이 됨에 주의합니다.


Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
namespace Solution {
  using System.Text;
  class Program {
    static void Main(string[] args) {

      var sb = new StringBuilder();

      var t = int.Parse(Console.ReadLine()!);

      while (t-- > 0) {
        var input = Console.ReadLine()!.Split(' ').ToArray();
        var x = int.Parse(input[0]);
        var w = int.Parse(input[1]);

        if (w <= x) sb.AppendLine("0");
        else {
          int bounces = 0;
          while (x < w) {
            x *= 2;
            bounces++;
          }
          sb.AppendLine(bounces.ToString());
        }
      }

      Console.Write(sb.ToString());

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int t; cin >> t;

  while (t--) {
    int x, w; cin >> x >> w;

    if (w <= x) cout << "0\n";
    else {
      int bounces = 0;
      while (x < w) {
        x *= 2;
        bounces++;
      }
      cout << bounces << "\n";
    }
  }

  return 0;
}