编写一个递归算法,找出从自然数1,2,3,…,n中任取r个数的所有组合。例如n=5,r=3时所有组合为543,542,541,532,531,521,432,431,421,321。
编写一个递归算法,找出从自然数1,2,3,…,n中任取r个数的所有组合。例如n=5,r=3时所有组合为543,542,541,532,531,521,432,431,421,321。
若设这n个自然数存放在整数数组A[n]中,A[i]中存放整数i+1(0≤i≤n-1)。
为求从这n个自然数中任取r个数的组合,可采用递归方法 comb(A,n,r)。
例如当n=5,r=3时,首先确定第一个数,如5,再从比它小的剩余的n一1个数中取r一1个数的组合comb(A,n—1,r一1),
即可得到以5开始的全部所要求的组合;
然后再轮流以4,3开始,依此办理,就可得到全部所要求的组合。
递归算法的描述如下。
#include<iostream>
using namespace std;void comb(int A[], int m, int n, int r) {//从A[]中的前m个整数中任取n个整数的所有组合,//r在最初调用时 =n,是为了控制输出使用的。int i, j;for (i = m;i >= n;i--) {A[n - 1] = i;if (n > 1) {comb(A, i - 1, n - 1, r);}else {for (j = r - 1;j >= 0;j--) {cout << A[j];}cout << endl;}}
}int main() {int A[5];for (int k = 0;k < 5;k++) {A[k] = k + 1;}comb(A, 5, 3, 3);
}
让学习多一点欢乐 --景甜
编写一个递归算法,找出从自然数1,2,3,…,n中任取r个数的所有组合。例如n=5,r=3时所有组合为543,542,541,532,531,521,432,431,421,321。相关推荐
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 编写一个函数找出这两个只出现一次的数字。
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次.编写一个函数找出这两个只出现一次的数字. 1.代码编写 2.结果 1.代码编写 代码如下(示例): #define _CRT_SECURE_ ...
- 编写一个程序,找出数组中元素的最大值,要求用到成员函数。
#include<iostream> using namespace std; class Sum {private:int a[10];//定义一个数组; int sum;public: ...
- Java黑皮书课后题第8章:**8.17(金融风暴)银行会互相借款……银行的总资产是它当时的余款减去它欠其他银行的贷款。如果一个银行的总资产在某个限以下,那么这个银行是不安全的。编写程序,找出所有不安
**8.17(金融风暴)银行会互相借款--银行的总资产是它当时的余款减去它欠其他银行的贷款.如果一个银行的总资产在某个限以下,那么这个银行是不安全的.编写程序,找出所有不安全银行 题目 题目描述 破题 ...
- Java黑皮书课后题第6章:**6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p≤31的所有梅森素数,然后显示如下结果
6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数.编写程序,找出p≤31的所有梅森素数,然后显示如下结果 题目 题目描述 破题 代码 题目 题目 ...
- 编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数:
编写程序,找出用户输入的一串数的最大数,程序需要提示用户一个一个地输入数,当用户输入0或负数时,程序显示出已输入的最大负整数: 代码 #include<stdio.h> #include& ...
- 编写程序:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。
编写程序:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回. 下面展示一些 内联代码片. #include<stdio.h> int main() {int f(int s);i ...
- Java黑皮书课后题第6章:**6.29(双素数)双素数是指一对差值为2的素数。例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数。编写程序,找出小于1000的所有双素数
6.29(双素数)双素数是指一对差值为2的素数.例如,3和5就是一对双素数,5和7是一对双素数,而11和13也是一对双素数.编写程序,找出小于1000的所有双素数 题目 题目描述 破题 代码 运行示例 ...
- c# 计算圆锥的体积_用c#编写一个程序计算出球、圆柱和圆锥的表面积和体积。...
2011-04-27 回答 //编写一个程序计算出球,圆柱和圆锥的表面积和体积. //球体表面积a=4π*r^2,体积v=4/3π*r^3 console.writeline("请输入圆的半 ...
- c# 计算圆锥的体积_用C#编写一个程序计算出球,圆柱和圆锥的表面积和体积。...
匿名用户 1级 2014-11-18 回答 //编写一个程序计算出球,圆柱和圆锥的表面积和体积. //球体表面积A=4π*R^2,体积V=4/3π*R^3 Console.WriteLine(&quo ...
最新文章
- BZOJ 4009 接水果
- 清华大学朱文武团队夺冠AAAI 2021国际深度元学习挑战赛
- Matlab GUI 设计(3):edit、slider、table数据同步
- Object o与Object o=null的区别
- 剑指Offer #05 用两个栈实现队列(模拟)
- 校省选赛第一场A题Cinema题解
- python函数调用键盘热键_Tkinter对键盘和鼠标事件的处理
- springboot+IntelliJ IDEA实现热部署
- echarts 有引导线和内部文字_点、线、面构图的异同以及相互转化
- 解决Android 输入法InputMethodService 显示时让原Activity大小计算错误问题
- Linux自学笔记——iptables
- 通过CSS,Jquery实现DIV的各种动作(包括漂移,未测试IE6)
- Python pandas使用
- 使用电子签章确立电子劳动合同的法律效力
- 结合插件实现【IDM+百度网盘】高速下载
- 前端开发工程师必备网站
- 现在各种云建站,挑两个给大家分析一下。
- 十五、2021-11-16Hadoop集群问题记录
- 机器学习之PQ量化算法
- -R语言中%in%函数的用法
热门文章
- leetcode 403青蛙过河
- web实时长图实践--摘抄
- Expected ']' Expected expression
- 2020出行之变(一):自动驾驶的“跃渊”时刻
- 遗传算法求取函数最值问题
- spark(56) -- SparkMllib -- SparkMllib的功能和应用场景
- 计算机学业水平测试基础知识,全国通用信息技术学业水平测试必考知识要点(一)...
- 谁,什么地方时间使用了我的人脸识别?
- Android项目—帖话APP
- 云滋味:微信点餐系统案例分析