将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成 1:2:3的比例,试求出所有满足条件的三个三位数。c语言
时间: 2023-05-28 15:04:41 浏览: 182
三个数排序.c
#include <stdio.h>
int main() {
int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int b[3]; // 存储三个三位数
int cnt = 0; // 计数器,记录满足条件的方案数
do {
// 枚举三个三位数
for (int i = 1; i < 9; i++) {
for (int j = i + 1; j < 9; j++) {
// 第一个三位数
b[0] = a[0] * 100 + a[i] * 10 + a[j];
// 第二个三位数
b[1] = a[1] * 100 + a[i] * 10 + a[j] * 2;
// 第三个三位数
b[2] = a[2] * 100 + a[i] * 10 + a[j] * 3;
// 判断是否满足比例关系
if (b[0] * 2 == b[1] && b[0] * 3 == b[2]) {
cnt++;
printf("%d:%d:%d\n", b[0], b[1], b[2]);
}
}
}
} while (next_permutation(a, a + 9)); // 生成全排列
printf("共有%d种方案\n", cnt);
return 0;
}
阅读全文