zoj1539
来源:互联网 发布:seo行业前景 编辑:程序博客网 时间:2024/05/22 01:10
题目大意:
有N个战士站成一排,需要选出来几个。选择规则如下:如果一排包括三个以上战士,然后所有战士,站在偶数位置或奇数位置被带走。直到小于等于三个战士剩下。计算有多少种方法。
解题思路:
DFS搜索
代码如下:
#include<stdio.h>int num;void dfs(int n){ if(n==3) { num++; return; } else if(n<3) return; else if(n%2==0) { dfs(n/2); dfs(n/2); } else if(n%2==1) { dfs(n/2); dfs(n/2+1); }}int main(){ int n; while(scanf("%d",&n)!=EOF) { num=0; dfs(n); printf("%d\n",num); } return 0;}
0 0