早教吧 育儿知识 作业答案 考试题库 百科 知识分享

c++递归函数给定一个存放正整数的数组A(元素各不相等)和一个正整数m,(1)先对数组A进行排序(从小到大),(2)再从中随意取几个数,使其和等于m,将其中所有可能的组合列出来,

题目详情
c++递归函数
给定一个存放正整数的数组A(元素各不相等)和一个正整数m,(1)先对数组A进行排序(从小到大),(2)再从中随意取几个数,使其和等于m,将其中所有可能的组合列出来,编写两个函数实现,其中一个函数用于数组排序(数组的元素赋值操作使用指针实现,注意与使用数组下标的区别),另一计算组合的函数使用递归实现。
▼优质解答
答案和解析
#include
using namespace std;
int list1[10];
//insersorrt function
void sorrt(int list[],int size)
{
for(int i=0;i {
int max=list[i];
int k;
for(k=i-1;k>=0&&list[k]>max;k--)
{
list[k+1]=list[k];
}
list[k+1]=max;
}
}
void fun(int x,int y,int z,int list[],int m)
{
if(z==m)
{
for(int i=0;i cout< cout< }
else
{
for(x;x<10;x++)
{
if(list[x]<=m-z)
{
list1[y]=list[x];
fun(x+1,y+1,z+list[x],list,m);
}

}
}
}
int main()
{
int list[10];//declare a array
//cin the array in circulation
for(int i=0;i<10;i++)
cin>>list[i];
//sorrt the array in insert sorrtion
sorrt(list,10);
//cin the number you want to funtion
int m;
cin>>m;
//use recursion function to breake up the number m
fun(0,0,0,list,m);

return 0;
}
看了 c++递归函数给定一个存放正...的网友还看了以下:

一副扑克牌去掉大、小王后,还有52张牌.(1)至少取几张牌才能保证其中有三张牌的花色相同?(2)至  2020-06-22 …

设机器数字长为24位,欲表示+3万的十进制数,除阶符\数符各取1位外,阶码\尾数各取几位试问在保证  2020-07-22 …

氯化铵固体在抽空容器中,部分分解为氨气和氯化氢气体达平衡,求组分数,相数和自由度,相数为几?我主要  2020-07-22 …

两数相除,商三余三,把被除数,除数、商及余数相加,总和是41.除数是被除数几分之几?两数相除,商三  2020-07-31 …

有效数的相对误差限的小数数位是怎麽取的?取几位有效数字?还是几位小数?相对误差限取几位小数数位?有  2020-08-02 …

17世纪70年代以前,几何和代数都有了相当的发展,但它们是相互分离的两个学科。笛卡尔对当时的几何方法  2020-11-01 …

易语言怎样取英文随机数和指定取几位数易语言怎样取英文随机数和指定取几位数这样取得的随机数只是2位数字  2020-11-18 …

请教几个生物分离的概念表观交换容量.热力学分配系数.盐析法.树脂湿真密度.两水相萃取萃取因素.表观系  2020-11-22 …

数学排列组合1、2、3、4、5、6、7、8、9、10等十个自然数中同时任取相异三数,且此三数之和为3  2020-11-30 …

从1-9的九个数字中任意选取七个组成没有重复数字的七位数1.若区三个偶数和四个技术,且任意两偶数均不  2021-01-02 …