大富翁游戏

来源:互联网 发布:java list remove方法 编辑:程序博客网 时间:2024/05/09 11:26

时间限制:1秒
空间限制:32768K
大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步。求玩家走到第n步(n<=骰子最大点数且是方法的唯一入参)时,总共有多少种投骰子的方法。
输入描述:
输入包括一个整数n,(1 ≤ n ≤ 6)

输出描述:
输出一个整数,表示投骰子的方法

输入例子1:
6

输出例子1:
32

/*手写,算出结果,暴力破解*/#include<stdio.h>#include<iostream>using namespace std;int main(void)    {    int n=0;    cin>>n;    int num=0;    switch(n)        {        case 1:num=1;break;        case 2:num=2;break;        case 3:num=4;break;        case 4:num=8;break;        case 5:num=16;break;        case 6:num=32;break;    }    cout<<num;    return 0;}
/*f(n)=f(n-1)+f(n-2)+...+1;在玩家走到第n步的情况,可能是先走了n-1步,剩下1步到达;也可能是先走n-2步,剩下再走2步到达;...;也可能是先走了1步,剩下再走n-1步。即 f(n) 是f(n-1)...f(1)的情况相加,再加上最后一步。*/#include<stdio.h>#include<iostream>using namespace std;int g(int n){    if (n == 1)        return 1;    else    {        int sum = 0;        for (int i = 1; i < n; i++)        {            sum += g(i);        }        return sum+1;    }}int main(void) {    int n = 0;    cin >> n;    cout << g(n);    return 0;}