zoukankan      html  css  js  c++  java
  • 组合数问题

    #include <iostream>

    #include <cstdio>

    using namespace std;

    int n,r;

    int ans[100];

    int fun(int i,int x)  //功能单元:根据现在的深度和上一次选出来的数字,决定下一次选出的数

    {

        if(i==r)

        {

            for(int j=0;j<r;j++)      //这个for循环决定了决策树伸展到哪一步

                printf("%d ",ans[j]);  //输出dfs每一支的前r个

            cout<<endl;

            return 0;

        }

        for(int y=x;y<=n-(r-i)+1;y++)  //为了保证给后面的留出位置

        {

            ans[i]=y;     //这里对ans数组是有覆盖的,所以只需要ans数组开得和r一样大就行了

            fun(i+1,y+1);  //i最大不超过r

        }

        

    }

    int main()

    {

        cin>>n>>r;  //输入要计算的组合数

        fun(0,1);   //从深度为0,基数为1开始

        return 0;

    }

    这篇文章,是又一个故事的结束...
    lazy's story is continuing.
  • 相关阅读:
    Java 基础
    Mybatis
    Gateway
    Debug
    Nacos
    Debug
    Debug
    echars 折线图之一条线显示不同颜色,及拐点显示不同颜色
    捌月份生活随笔
    MyMatrix2022 64位版本下载 64bits Edition
  • 原文地址:https://www.cnblogs.com/Hello-world-hello-lazy/p/13764140.html
Copyright © 2011-2022 走看看