早教吧作业答案频道 -->其他-->
c++递归函数给定一个存放正整数的数组A(元素各不相等)和一个正整数m,(1)先对数组A进行排序(从小到大),(2)再从中随意取几个数,使其和等于m,将其中所有可能的组合列出来,
题目详情
c++递归函数
给定一个存放正整数的数组A(元素各不相等)和一个正整数m,(1)先对数组A进行排序(从小到大),(2)再从中随意取几个数,使其和等于m,将其中所有可能的组合列出来,编写两个函数实现,其中一个函数用于数组排序(数组的元素赋值操作使用指针实现,注意与使用数组下标的区别),另一计算组合的函数使用递归实现。
给定一个存放正整数的数组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;
}
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
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++递归函数给定一个存放正...的网友还看了以下:
给“却”字写出正确解释小溪泛尽却山行()草色遥看近却无()盛情难却()顽强的精神使困难却步()写几 2020-04-26 …
小明在大钟里,小军在外面使劲敲钟,没想到把自己给真的很难受,在里面的小明反倒若无其事,你知道这是什 2020-04-27 …
英语作文 给你的美国朋友写信介绍你的英语老师Mr.Lee 英语作文 给你的美国朋友写信介绍你的英语 2020-05-14 …
在下列句子的括号中,给加粗字注音或根据拼音写汉字。①那声音大概是横笛,wǎn()转,悠扬,使我的心 2020-05-14 …
英语翻译很抱歉,由于昨天的假期使得现在才给您答复.经过确认,发给您的货,有可能是***,只是标签错 2020-05-16 …
CAD里怎么把倾斜的直线偏移,使得偏移后得到的两条直线的垂直距离是给定的距离~例如,我有一条不知道 2020-05-17 …
已知关于x,y的方程组x+y=3k-4,请你给出k的一个值,使方程组的解中x,y都是正整数,并求出 2020-05-20 …
要给过程的,给我说答案的,给10QB2.将下列各式写成省略加号的和的形式,并按要求换加数的位置1( 2020-06-04 …
英语翻译红色可使人的心理活动活跃,黄色可使人振奋,绿色可缓解人的心理紧张,紫色使人感到压抑,灰色使 2020-06-05 …
给我的作文拟个题目,不难!快读书有什么好处呢?为什么要同学们多读一些有用的课外书呢?首先,读书可以 2020-06-09 …