取石子 斐波那契博弈 華爲oj

描述:
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;  
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章