求解投骰子游戏问题(C++)
【问题描述】
玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n≤骰子最大点数且投骰子方法唯一)时总共有多少种投骰子的方法。
输入描述:输入包括一个整数n(1≤n≤6)。
输出描述:输出一个整数,表示投骰子的方法数。
输入样例:
样例输出:
【思路】
【代码】
#include<iostream>
using namespace std;
int num;//记录玩家走到第n步时总共有多少种投骰子的方法
int funcc(int n) {
int sum = 0;
if (n == 1) {//初始条件 f1 == 1
num = 1;
}
else if(n >= 1){
for (int i = n - 1; i >= 1; i--) {
sum = sum + funcc(i) ;
}
num = sum + 1;
}
return num ;
}
int main()
{
int n= 0;
cin >> n;
cout << funcc(n);
system("pause");
}