c++可以通过不加索引来进行数对一次性输出
/*
1:500,0000(6+1/6+1)
2:500,0000(6/6)
3:1,0000(5+1/5+1)
4:500(7/5)
5:50(7/4)
6:5(7/3)||(6+1/1+1)
*/
constexpr auto Nn = 6;
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int perm(int* num, int i, int N);
int main(){
constexpr auto N = 6,N2=12;
int num[N + 1]{}, i{ 0 }, num2[N2 + 1]{};
for(i = 1; i <= N; i++) num[i] = i;
int tmp6[]{ perm(num, 1, N) },tmp12=perm(num2,1,N2);
for (int i = 0; i <= sizeof(num2) / sizeof(num2[0])-1;i++) {
for (int j = 0; j <= 6; j++) {
cout<<num[i*6+j];
}
cout << char(num2[i]);
}
return 0;
}
int perm(int* num, int i,int N){
int j, k, tmp{};
if(i < N){
for(j = i; j <= N; j++){
tmp = num[j];
for(k = j; k > i; k--){
num[k] = num[k-1];
}
num[i] = tmp;
perm(num, i+1,N);
for (k = i; k < j; k++) {
num[k] = num[k + 1];
}
num[j] = tmp;
}
}
else{
int tmp2[Nn + 1]{};
for (j = 0; j <= N-1; j++) {
tmp2[j] = j;
}
tmp2[j+1] = 12142 ;
}
return tmp2;
}
PS:这个程序是计算彩票6+1的