递归
#include<iostream>
//cin>>,cout<<xx<<endl和scanf,printf的区别:长短,printf速度快(>10的5次方)
using namespace std;
int f(int n)
{
if(n==1) return 1;
if(n==2) return 2;
return f(n-1)+f(n-2);
}
int main()
{
int n;
cin >> n;
cout <<f(n)<<endl;
return 0;
}
递归实现指数型枚举
递归、dfs,最重要的是顺序,从1到n考虑每个数选不选--递归搜索树
//题目:从1~n个数最忌选取任意多少个,输出所有可能的方案
//解题思路:依次考虑每个数,选或者不选

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
//题目:从1~n个数最忌选取任意多少个,输出所有可能的方案
//解题思路:依次考虑每个数,选或者不选
const int N =16;
int n;
int st[N]; //状态,记录每个位置当前的状态,0表示还没考虑,1表示选,2表示不选
void dfs(int u)//u表示当前在做第几位
{
if(u>n) //找边界,就是最后输出那里
{
for(int i;i<=n;i++)//在1、2、3、...n中
if(s

最低0.47元/天 解锁文章
1194





