#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<stdio.h>
typedef struct args {
int nums[6];
int count;
int continuous;
}Args;
void getNewNumber(Args *args) {
int i, j;
if (args->count == 5) {
int all = 0;
int _all = 0;
for(i = 0; i < 6; i++) {
all += args->nums[i];
_all += (args->nums[i] % 10);
}
if(all < 60 || all > 137 || _all < 35 || _all > 36)
return;
for (i = 0; i < 6; i++) {
printf("%d ", args->nums[i]);
}
printf("\n");
return;
}
i = (args->continuous == 2) ? args->nums[args->count] + 2 : args->nums[args->count] + 1;
if (i > 33)
return;
for (j = i; j <= 33; j++) {
Args n;
memcpy(&n, args, sizeof(n));
if (j == n.nums[n.count] + 1) {
n.continuous++;
n.count++;
n.nums[n.count] = j;
getNewNumber(&n);
} else {
n.count++;
n.nums[n.count] = j;
getNewNumber(&n);
}
}
}
void main()
{
int i = 1;
Args *root = (Args *) malloc (sizeof(Args));
memset(root, 0, sizeof(Args));
for (i = 1; i <= 33; i++) {
root->continuous = 0;
root->count = 0;
root->nums[0] = i;
getNewNumber(root);
}
}
温馨提示:答案为网友推荐,仅供参考