C++练习 | 掷骰子走到第n步的方法数(DFS)

玩家根据骰子的点数决定步数,骰子点数为1的时候走一步,以此类推。求玩家走到第n步总共有多少种投骰子的方法。输入为一个整数n,输出为投骰子的方法数。

#include <iostream>
using namespace std;
int sum;
void dfs(int x,int l)
{
    if(l>x)
    {
        return;
    }
    if((l+1)==x)
    {
        sum++;
    }
    if((l+2)==x)
    {
        sum++;
    }
    if((l+3)==x)
    {
        sum++;
    }
    if((l+4)==x)
    {
        sum++;
    }
    if((l+5)==x)
    {
        sum++;
    }
    if((l+6)==x)
    {
        sum++;
    }
        dfs(x,l+1);
        dfs(x,l+2);
        dfs(x,l+3);
        dfs(x,l+4);
        dfs(x,l+5);
        dfs(x,l+6);
}
int main()
{
    int n;
    cin>>n;
    dfs(n,0);
    cout<<sum<<endl;
    return 0;
}

 

posted @ 2019-04-04 15:53  洛枫大人  阅读(876)  评论(0编辑  收藏  举报