#3310: 不知道哪裡出了錯,請高人幫忙看一下


panruru1224 (13K)

學校 : 臺北市立松山高級中學
編號 : 10199
來源 : [118.166.221.140]
最後登入時間 :
2011-09-01 00:52:35
d115. 數字包牌 | From: [118.168.114.187] | 發表日期 : 2010-01-22 18:20

#include<iostream>
using namespace std;

int reco[100],arr[100];

void rec(int n , int m , int curr,int step){
    if(step==m){
        for(int i=0;i<m;++i)
            cout << reco[i] << " ";
        cout << endl;
        return;
    }
    for(int i=curr;i<=n-m+1;++i){
        reco[step]=arr[i];
        rec(n,m,i+1,step+1);
    }
}

int main(){
    int n;
    while(cin >> n ){
        if(n==0)
            break;
        int m;
        for(int i=0;i<n;++i)
            cin >> arr[i];
        cin >> m;
        for(int i=0;i<n;++i)
            for(int j=i+1;j<n;++j)
                if(arr[j]<arr[i])
                    swap(arr[j],arr[i]);
        rec(n,m,0,0);
    }
    return 0;
}
 
#3313: Re:不知道哪裡出了錯,請高人幫忙看一下


leopan0922 (zz)

學校 : 臺北市立成功高級中學
編號 : 6612
來源 : [140.113.225.106]
最後登入時間 :
2016-08-15 15:44:07
d115. 數字包牌 | From: [219.70.174.13] | 發表日期 : 2010-01-23 00:00

#include
using namespace std;

int reco[100],arr[100];

void rec(int n , int m , int curr,int step){
    if(step==m){
        for(int i=0;i
            cout << reco[i] << " ";
        cout << endl;
        return;
    }
    for(int i=curr;i<n;++i){
        reco[step]=arr[i];
        rec(n,m,i+1,step+1);
    }
}

int main(){
    int n;
    while(cin >> n ){
        if(n==0)
            break;
        int m;
        for(int i=0;i
            cin >> arr[i];
        cin >> m;
        for(int i=0;i
            for(int j=i+1;j
                if(arr[j]
                    swap(arr[j],arr[i]);
        rec(n,m,0,0);
    }
    return 0;
}

改成這樣就過了研究一下吧
 
ZeroJudge Forum