HDU2516 取石子游戏
问题链接:HDU2516 取石子游戏。
问题描述:参见上文。
问题分析:这是一个典型的斐波那契博弈题,参见参考链接。
程序说明:
(略)
参考链接:
AC的C++语言程序:
/* HDU2516 取石子游戏 */ #include <iostream> using namespace std; const int N = 1000000; long long fib[N+1]; void setfib(int n) { fib[0] = 0; fib[1] = 1; for(int i=2; i<=n; i++) fib[i] = fib[i-2] + fib[i-1]; } int main() { long long n; setfib(N); while(cin >> n && n) { for(int i=1; i<=N; i++) { if(n == fib[i]) { cout << "Second win" << endl; break; } else if(n < fib[i]) { cout << "First win" << endl; break; } } } return 0; }