• 简单的排列问题的总结


    核心可以被归纳为C(n, m)(从n个对象中挑选出m个的方案个数)排列的代码实现

                     n!
    

    C(n, m)= ————
    m!(n-m)!

    举例:

    A1037:
    问题描述
      试用递归方法编程求解下楼问题的方案数:从楼上到楼下共有h个台阶,下楼每步可走1个台阶、2个台阶或者3个台阶
      问可走出多少种方案数
    输入格式
      一行,只有一个整数h,4<=h<=20(其他情况输出0)
    输出格式
      一行,只有一个整数,表示下楼走法的总方案数
    样例输入
    4
    样例输出
    7
    输入格式
      一行,只有一个整数h,4<=h<=20
    输出格式
      一行,只有一个整数,表示下楼走法的总方案数
    样例输入
    4
    样例输出
    7

    include

    include <string.h>

    include

    include <math.h>

    using namespace std;
    //
    int main() {
    int tot;
    cin >> tot;
    int sum = 0;
    if (tot >= 4 && tot<= 20)
    for (int i = tot / 3; i >= 0; i--) {
    int tot2 = tot - 3 * i;
    for (int j = tot2; j >= 0; j--) {
    int tot1 = tot2 - 2 * j;
    int mul = 1;
    for (int x = tot1 + i + j; x > tot1; x--)
    mul *= x;
    for (int x = i + j; x > 0; x--)
    mul /= x;
    for (int x = i + j; x > i; x--)
    mul *= x;
    for (int x = j; x > 0; x--)
    mul /= x;
    sum += mul;
    }
    }
    cout<<sum;
    return 0;
    }

  • 相关阅读:
    Nulls first和nulls last
    json.parse()和json.stringify()
    将单个的.java文件通过javac编辑为.class文件
    看别人项目思路:
    我想成为怎样的人?
    装逼语录:
    Uncompressing Linux... done, booting the kernel
    linux 内核模块最小环境编译
    select 定时器
    mount
  • 原文地址:https://www.cnblogs.com/venusian/p/10430701.html
Copyright © 2020-2023  润新知