哎呀哎呀呀 幼苗
共回答了22个问题采纳率:95.5% 举报
1年前 追问
这里注意,如果题目没有限定K的大小,即一个集合可能会有无限个数,所以用来记录集合的数组S就需要是动态的,需要在main()中初始化
//全局变量
int N;
int K;
int S[20];
void Fun(int N1,int K1){
int A=K-K1,B=N-N1,C=B+1,D=N,E=K1;//其实C、E只有在K1==1的时候有用,D一直都是等于N,所以也是没有用的,
S[A] = B;
if(K1==1){//当K1==1的时候,直接就可以输出了,不用递归
for(int i=C;i<=N;i++){
S[K] = i;
print();
}
}
else{//当K1>=2的时候才需要递归
for(int i=1;N1-i>=K1-1;i++){
Fun(N1-i,K1-1);
}
}
}
void print(){//打印集合,输出数组S[1]到S[K]的具体数
for(int i=1;i<=K;i++){
cout<}
cout<<"n";
}
int main(){
输入N和K;
C(N,K);
}
C++很久没用,具体语法不知道对不对
你能帮帮他们吗