C++ 算法问题 根据输入 计算一个数组中N个数相加的所有组合伪代码int a[20];int number;如果number=n 则算出a中所有元素 n个元素相加 有多少种组合number = 3 算出 a中 3个元素相加 的所有组合
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/29 07:45:52
C++ 算法问题 根据输入 计算一个数组中N个数相加的所有组合伪代码int a[20];int number;如果number=n 则算出a中所有元素 n个元素相加 有多少种组合number = 3 算出 a中 3个元素相加 的所有组合
C++ 算法问题 根据输入 计算一个数组中N个数相加的所有组合
伪代码
int a[20];
int number;
如果number=n 则算出a中所有元素 n个元素相加 有多少种组合
number = 3 算出 a中 3个元素相加 的所有组合
C++ 算法问题 根据输入 计算一个数组中N个数相加的所有组合伪代码int a[20];int number;如果number=n 则算出a中所有元素 n个元素相加 有多少种组合number = 3 算出 a中 3个元素相加 的所有组合
到底是求组合数目? 还是所有组合?
迭代啊、
int a[20];
int n;
int cnt = 0;
int b[20];
void func( int idx , int depth )
{
if( depth == n ) {
handle(b) // b is a solution
cnt++;
return ;
}
if ( idx < 20 ){
func ( idx+1 , depth ) ; // ignore a[idx]
b[depth] = a[idx];
func ( idx+1 , depth+1 ); // choose a[idx]
}
}