天天看點

【STL枚舉排列+格式控制+前導0】HDU-1716 排列2注解代碼結果

【STL枚舉排列+格式控制+前導0】HDU-1716 排列2注解代碼結果
【STL枚舉排列+格式控制+前導0】HDU-1716 排列2注解代碼結果

注解

1、STL的應用,next_permutation生成下一個排列。

2、格式控制:空行、前導0的處理。

代碼

#include <iostream>
#include <algorithm>

using namespace std;

int main() {

    int a[4];
    cin>>a[0]>>a[1]>>a[2]>>a[3];

    while(a[0] || a[1] || a[2] || a[3]) {
        
        sort(a, a+4);
        int last;
        for(int i=0; i<4; i++){
            if(a[i]){
                last = a[i];
                break;
            }
        }
        
        int isFirst = 1;
        do {
            if(a[0]) {
                if(last!=a[0]) {
                    cout<<endl;
                    isFirst = 1;
                    last = a[0];
                }
                if(isFirst) {
                    cout<<a[0]<<a[1]<<a[2]<<a[3];
                    isFirst = 0;
                } else {
                    cout<<" "<<a[0]<<a[1]<<a[2]<<a[3];
                }
            }

        } while(next_permutation(a, a+4));
        
        cout<<endl;
        cin>>a[0]>>a[1]>>a[2]>>a[3];
        if(a[0] || a[1] || a[2] || a[3]){
            cout<<endl;
        }
    }

    return 0;
}
           

結果

【STL枚舉排列+格式控制+前導0】HDU-1716 排列2注解代碼結果