输入:
10 3
12 3
输出
yes
no
一种简洁的搜索方式:
代码:
1 #include <iostream> 2 #include<stdio.h> 3 #include<string.h> 4 #include<algorithm> 5 #include<math.h> 6 using namespace std; 7 8 bool fact(int n,int k) //递归博弈代码 9 { 10 if(n==0)return false; 11 if(n<=k)return true; 12 for(int i=1; i<=n&&i<=k; i++) //本次作出选择选取i个小球 13 { 14 if(fact(n-i,k)==false)//下一位再走一次false 15 return true; 16 } 17 return false; 18 } 19 20 int main() 21 { 22 int n,k; 23 scanf("%d%d",&n,&k); 24 if(fact(n,k)) 25 printf("yes\n"); 26 else 27 printf("no\n"); 28 29 return 0; 30 }
原文:https://www.cnblogs.com/zhazhaacmer/p/9480333.html