Soluție HackerRank pentru Stepping Stones Game, subdomeniul Algebra, în Python 3. Include cerința formatată, exemple, explicația pașilor și cod sursă.
- Problemă: Stepping Stones Game
- Domeniu: Algebra
- Limbaj: Python 3
Challenge: Stepping Stones Game
Subdomeniu: Algebra (algebra)
Scor cont: 20.0 / 20
Submission status: Accepted
Submission score: 1.0
Submission ID: 464723234
Limbaj: python3
Link challenge: https://www.hackerrank.com/challenges/stepping-stones-game/problem
Cerință
Bob sees his younger brother, Jack, playing Stepping Stones. He is fascinated by the most interesting game and decides to play it.
Square boxes have been made on the ground with the help of chalk powder, and a number is assigned to each block. Bob is standing in front of these blocks. From here, he will throw a stone 1 block far, move to that block; pick up the stone and then he will throw the stone two blocks far from here, move to that block; pick up the stone, and throw the stone three blocks far from here, move to that block, and so on. What's the catch of the game??. The catch of the game is to check if it is possible to reach N-th block in this manner.
Bob is a bit lazy. He will make a move only if he is sure that he can reach the N-th block. So, tell him if he should make a move or not?
Input Format
First line of input contains an integer T denoting the number of times Bob plays this game. Each of the next T lines contains a single integer N denoting the N-th block.
Output Format
Output consists of several lines as per the following criteria: If bob is able to reach N-th block, then print `Go On Bob` with the number of moves required to reach to the N-th block both separated by a space. If Bob is not able to reach the N-th block, then print `Better Luck Next Time`.
Constraints
1 ≤ T ≤ 10^5
1 ≤ N ≤ 10^18
Sample Input #00:
1
2
Sample Output #00:
Better Luck Next Time
Explanation: #00:
Bob can jump to the 1^st Block. From here, he is allowed to make a move to the 3^rd Block only. So,he cannot step onto 2^nd Block.
Sample Input #01:
1
3
Sample Output #01:
Go On Bob 2
Explanation: #01:
As explained in the previous test case, Bob can make a second move to reach to the 3^rd Block. So, he can step on 3^rd block in just 2 moves.
Cod sursă
#!/bin/python3
import math
import os
import random
import re
import sys
def solve(n):
# Write your code here
delta = math.sqrt(1+8*n) - 1
if delta%2:
return "Better Luck Next Time"
return f"Go On Bob {int(delta//2)}"
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
t = int(input().strip())
for t_itr in range(t):
n = int(input().strip())
result = solve(n)
fptr.write(result + '\n')
fptr.close()
