P1157 组合的输出

简介: P1157 组合的输出

fb95aaf968c94755bcf78b7940bb8fd5.png

排列组合中的组合问题

f()函数在到达叶子节点时要return

#include <bits/stdc++.h>
using namespace std;
const int maxn = 30;
int n, r;
int ans[maxn];
void f(int x, int start) // 已经选了x个数,现在位置是start
{
   if (x > r)
   { // 抽了r个元素
      for (int i = 1; i <= r; i++)
      {
         cout << setw(3) << ans[i] ;
      }
      cout << endl;
      return; // 必须加上
   }
 
   for (int i = start; i <= n; i++)
   { // 不要重复枚举1
      ans[x] = i;
      f(x + 1, i + 1);
      ans[x] = 0;
   }
}
int main() // 依次枚举每个数放哪个位置
{
   cin >> n >> r;
   f(1, 1); // 开始选第一个数字, 从第一个位置开始
   return 0;
}


相关文章
|
7月前
|
JavaScript
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
101 0
|
7月前
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
|
4月前
|
JavaScript 前端开发 开发者
数据输出方法
【8月更文挑战第30天】
46 3
|
API Serverless 监控
函数组合的N种方式
随着以函数即服务(Function as a Service)为代表的无服务器计算(Serverless)的广泛使用,很多用户遇到了涉及多个函数的场景,需要组合多个函数来共同完成一个业务目标,这正是微服务“分而治之,合而用之”的精髓所在。
2355 0
|
7月前
|
C++
输入三个数值a,b,c,确定a,b,c能构成三角形需要同时满足三条件:a+b>c,a+c>b,b+c>a,要求编写一个用于判断输入的a,b,c能否构成三角形的程序,若能输出yes,若不能输出no
这是一段包含C++代码和运行结果的描述。代码是一个程序,用于输入三个整数并判断它们是否能构成三角形(a+b&gt;c, a+c&gt;b, b+c&gt;a)。运行结果显示了输出为&quot;YES&quot;或&quot;NO&quot;的情况。
89 0
|
7月前
|
算法 测试技术 C#
【多数组合 数学 字符串】2514. 统计同位异构字符串数目
【多数组合 数学 字符串】2514. 统计同位异构字符串数目
|
7月前
数字组合 (计蒜客 - T1218)
数字组合 (计蒜客 - T1218)
|
移动开发
1317:【例5.2】组合的输出
1317:【例5.2】组合的输出
105 0
|
算法 编译器 C语言
C++函数新思想和标准的输入和输出
C++函数新思想和标准的输入和输出