C++實現求解投骰子游戲問題
阿新 • • 發佈:2018-12-13
【問題描述】玩家根據骰子的點數決定走的步數,即骰子點數為1時可以走一步,點數為2時可以走兩步,點數為n時可以走n步。求玩家走到第n步(n≤骰子最大點數且投骰子的方法唯一)時總共有多少種投骰子的方法。
輸入描述:輸入包括一個整數n(1≤n≤6)。
輸出描述:輸出一個整數,表示投骰子的方法數。
輸入樣例:6
輸出樣例:32
#include<iostream> using namespace std; int func(int n,int m,int &k) //n:當前步數 m:目的步數 k:方法數 { if(n == m) //如果當前步數等於目的步數,方法數加一 return k++; if(n > m) //當前步數大於目的步數時,方法數不變 return k; for(int i=1;i<=m;i++) { func(n+i,m,k); } return k; //返回方法數 } int main() { int n,k=0; cin>>n; cout<<func(0,n,k); }