码迷,mamicode.com
首页 > 其他好文 > 详细

取石子(斐波那契博弈)

时间:2019-11-06 21:18:23      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:out   problem   nbsp   输出   pid   using   cout   flag   turn   

题意:http://acm.hdu.edu.cn/showproblem.php?pid=2516

1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".

 1 #include<iostream>
 2 using namespace std;
 3 int main() {
 4     int n, i,flag=1;
 5     int a[1000] = { 0 };
 6     a[0] = 0; a[1] = 1; a[2] = 1;
 7     for (i = 3; i < 1000; i++) {
 8         a[i] = a[i - 1] + a[i - 2];
 9     }
10     while (cin >> n) {
11         if (n == 0)
12             exit(0);
13         else {
14             for (i = 3; i < 1000; i++) {
15                 if (n == a[i]) {
16                     cout << "Second win" << endl;
17                     flag = 0;
18                     break;
19                 }
20             }
21             if (flag == 1) {
22                 cout << "First win" << endl;
23             }
24             else {
25                 flag = 1;
26             }
27         }
28     }
29     return 0;
30 }

 

取石子(斐波那契博弈)

标签:out   problem   nbsp   输出   pid   using   cout   flag   turn   

原文地址:https://www.cnblogs.com/--HPY-7m/p/11808681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!