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
原创粉丝点击