#53422: 用遞迴


Tino961009 (能AC,就別管怎麼AC)

學校 : 國立臺中第二高級中學
編號 : 288138
來源 : [111.82.100.143]
最後登入時間 :
2025-10-11 12:15:02

可以先想想平常全舉都怎麼做 

底下有程式碼(需反白)  真的部會在看!!!

#include<bits/stdc++.h>
using namespace std;
int n, k;
 
void pq(vector<int>&arr1, vector<int>&arr2, int i, int t){
 
if(t==k){
 
for(int i=0; i<k; i++){
cout<<arr2[i]<<" ";
}
cout<<endl;
 
return;
}
 
for(int s=i+1; s<n; s++){
 
arr2[t]=arr1[s];
pq(arr1, arr2, s, t+1);
 
}
return;
}
 
int main(){
 
while(cin>>n){
 
if(n==0) break;
 
vector<int> m(n);
for(int i=0; i<n; i++){
cin>>m[i];
}
sort(m.begin(), m.end());
 
cin>>k;
vector<int> ans(k);
 
for(int i=0; i<n; i++){
 
ans[0]=m[i];
pq(m, ans, i, 1);
 
}
 
}
 
cout<<endl;
return 0;
 
#53423: Re: 用遞迴


Tino961009 (能AC,就別管怎麼AC)

學校 : 國立臺中第二高級中學
編號 : 288138
來源 : [111.82.100.143]
最後登入時間 :
2025-10-11 12:15:02

可以先想想平常全舉都怎麼做 

底下有程式碼(需反白)  真的(不)會在看!!!

#include
using namespace std;
int n, k;
 
void pq(vector&arr1, vector&arr2, int i, int t){
 
if(t==k){
 
for(int i=0; i
cout<
}
cout<
 
return;
}
 
for(int s=i+1; s
 
arr2[t]=arr1[s];
pq(arr1, arr2, s, t+1);
 
}
return;
}
 
int main(){
 
while(cin>>n){
 
if(n==0) break;
 
vector m(n);
for(int i=0; i
cin>>m[i];
}
sort(m.begin(), m.end());
 
cin>>k;
vector ans(k);
 
for(int i=0; i
 
ans[0]=m[i];
pq(m, ans, i, 1);
 
}
 
}
 
cout<
return 0;