全排列
查看原帖
全排列
1281117
YJLphy楼主2024/3/10 21:38

大佬们~有一个样例超时了,咋整
其他样例正确,加了注释
(本人六年级,勿喷)

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int A, B, C;
    bool flag = false; // 判断有没有输出过
    cin >> A >> B >> C;
    int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // 用来组成数的各个数字
    do
    {
        // 位值原理组数
    	int num1 = a[0] * 100 + a[1] * 10 + a[2] * 1;
    	int num2 = a[3] * 100 + a[4] * 10 + a[5] * 1;
    	int num3 = a[6] * 100 + a[7] * 10 + a[8] * 1;

        // 判断是否满足题意,是则输出
        if ((num1 * B / A == num2) && (num1 * C / A == num3) && (num2 * C / B == num3))
        {
        	for (int j = 0; j < 3; j++) cout << a[j * 3] << a[j * 3 + 1] << a[j * 3 + 2] << " ";
        	cout << endl;
        	flag = true;
        }
    }
    while (next_permutation(a, a + 9)); // 全排列
    if (flag == false) cout << "No!!!" << endl;
    return 0;
}
2024/3/10 21:38
加载中...