[蓝桥杯2015初赛]牌型种数

 

 

利用dfs,找到一个路径长度为13的路。

 同时还要注意k,用来控制走了几次,走了13次

#include <iostream>
#include <cstdio>

using namespace std;

long long ans; 
// cnt 计算已经拿取的张数
// k就是控制递归时,控制一直取0(也就是不拿)的情况 
void dfs(int cnt, int k) {
    if (cnt == 13) ans++;
    if (cnt >= 13 || k >= 13) return;
    
    for (int i = 0; i <= 4; i++)
        dfs(cnt+i, k+1);
}

int main( ) {
    ans = 0;
    // 初始化张数为0,拿的次数初始为0 
    dfs(0, 0);
    cout << ans << endl;
    return 0;
}

 

posted @ 2020-01-27 15:16  Tomorrow1126  阅读(320)  评论(0编辑  收藏  举报