题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4764
题目大意:Tang和Jiang玩石子游戏,给定n个石子,每次取[1,k]个石子,最先取完的人失败,Tang先取,求博弈。
Sample Input
1 1
30 3
10 2
0 0
Sample Output
Jiang
Tang
Jiang
分析:可以看成是谁先取完n-1个石子,谁获胜,则变成完完全全的巴什博弈,当然要考虑特殊情况。
代码如下:
1 #include<iostream> 2 # include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int n,m; 7 8 while(scanf("%d%d",&n,&m)&& n&&m) 9 { 10 if(n==1) 11 { 12 printf("Jiang "); 13 continue; 14 } 15 if(m>=n) 16 { 17 printf("Tang "); 18 continue; 19 } 20 n--; 21 if(n%(m+1)) 22 printf("Tang "); 23 else 24 printf("Jiang "); 25 } 26 return 0; 27 }