一道c语言的题目.从1到33这些数中任选6个不相等的数,这6个数的和大于等于60且小于等于137,这6个数的个位数相加大于等于14且小于等于36,这6个数中相邻连续的各数不超过3个,这样的组合有多
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 13:58:31
一道c语言的题目.从1到33这些数中任选6个不相等的数,这6个数的和大于等于60且小于等于137,这6个数的个位数相加大于等于14且小于等于36,这6个数中相邻连续的各数不超过3个,这样的组合有多
一道c语言的题目.
从1到33这些数中任选6个不相等的数,这6个数的和大于等于60且小于等于137,这6个数的个位数相加大于等于14且小于等于36,这6个数中相邻连续的各数不超过3个,这样的组合有多少种,并输出组合.
一道c语言的题目.从1到33这些数中任选6个不相等的数,这6个数的和大于等于60且小于等于137,这6个数的个位数相加大于等于14且小于等于36,这6个数中相邻连续的各数不超过3个,这样的组合有多
#include
#include
#include
#include
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 count = 0;
root->nums[0] = i;
getNewNumber(root);
}
}