描述:
1堆石子有n個,兩人輪流取.先取者第1次可以取任意多個,但不能全部取完.以後每次取的石子數不能超過上次取子數的2倍。
取完者勝.先取者負輸出2.先取者勝輸出1.
運行時間限制: 無限制
內存限制: 無限制
輸入:
大於2的正整數。表示石子的個數
輸出:
1或者2
樣例輸入:
3
樣例輸出:
2
// ojTest03.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
//華爲2014校招機試題第三題,160分
#include<stdio.h>
#define N 47
int main()
{
int f[N];
f[0] = 0, f[1] = 1;
int i, n;
int flag=1;
for (i = 2; i < N; i++)
{
f[i] = f[i-1] + f[i-2];
}
scanf("%d",&n);
// if(n == 0) break;
flag = 1;
//根據題目意思,n>=2的,所以從f[3] = 2開始
for (i = 3; i < N; i++)
{
if (n == f[i])
{
flag = 2;
break;
}
}
printf("%d",flag);
return 0;
}