-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
37 lines (33 loc) · 1.8 KB
/
README
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
31
32
33
34
35
36
37
# Tue Nov 8 20:55:37 IST 2011, ramonrails
# =================
#
# Consider a game played on a strip of n empty squares (a 1 x n grid). Players take turns moving. A move consists of
# choosing two adjacent empty squares and drawing an "X" in each of them. The winner is the first player who cannot
# make a move.
#
# - If n = 1, there are no moves for the first player, so the first player wins automatically. - If n = 2, there is
# only one move for the first player, after which the second player wins. - If n = 3, there are two moves for the first
# player, both of which leave a situation in which the second player wins. - If n = 4, there are three moves for the
# first player; he can win the game by drawing an X in each of the two adjacent squares nearest to either the left edge
# or the right edge of the strip. For instance, if the initial empty board looks like this "----", a winning move is
# either "XX--" or "--XX". - If n = 5, there are four moves for the first player, any of which will allow him to force
# a win.
#
# So, for 1 <= n <= 5, there are 3 values of n for which the first player can force a win. Similarly, for 1 <= n <= 10,
# there are 6 values of n for which the first player can force a win.
#
# For 1 <= n <= 70, how many values of n are there for which the first player can force a win?
#
# =================
#
# Write a program to calculate the answer. Your solution should be all your own work. Then send us the answer along
# with your source code, how long it took to run, and what kind of machine you ran it on.
# * for every 5 cycles, Player A has 3 wins
# When all cycles are divided into batches of 5 cycles in each batch
# * every 1st, 4th & 5th cycle, Player A wins
console usage:
ruby play.rb 1 2 3 4 10 21 23 45 70
TDD usage:
gem install bundler
bundle install
guard