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; }