您的位置:首页 > 其它

取石子 斐波那契博弈 华为oj

2015-08-09 11:04 225 查看
描述:

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
;
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: