1025. Divisor Game
Алиса и Боб играют в игру по очереди, причем Алиса начинает первой. Изначально на доске мелом написано number n. В свой ход каждый игрок делает ход, состоящий из: выбора любого x при 0 < x < n и n % x == 0. Замены числа n на доске на n - x. Также, если игрок не может сделать ход, он проигрывает игру. returnsся true тогда и только тогда, когда Алиса выигрывает игру, предполагая, что оба игрока играют оптимально.
예제:
Input: n = 2
Output: true
C# 해법
매칭됨/원본public class Solution {
public bool DivisorGame(int n) {
return n % 2 == 0;
}
}
C++ 해법
자동 초안, 제출 전 검토#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public bool DivisorGame(int n) {
return n % 2 == 0;
}
}
Java 해법
매칭됨/원본public class Solution {
public boolean divisorGame(int n) {
return n % 2 == 0;
}
}
JavaScript 해법
매칭됨/원본class Solution {
divisorGame(n) {
return n % 2 === 0;
}
}
Python 해법
매칭됨/원본class Solution:
def divisorGame(self, n: int) -> bool:
return n % 2 == 0
Algorithm
정의 выигрыша:
Заметим, что если number n четное, Алиса всегда выигрывает, потому что она может уменьшить n на 1, и оставить Боба с нечетным numberм.
Если number n нечетное, Алиса всегда проигрывает, потому что Боб может уменьшить n на 1, и оставить Алису с четным numberм.
Проверка четности числа:
Проверяем, четное ли number n. Если n четное, возвращаем true, если нечетное, возвращаем false.
Возврат результата:
Возвращаем результат в зависимости от четности числа n.
😎
Vacancies for this task
활성 채용 with overlapping task tags are 표시됨.