牛客·NC18929·排列式·顺序结构题

牛客·NC18929·排列式·顺序结构题

题目描述

7254 = 39 x 186 这个式子中1-8每个数字正好出现一次,

输出所有这样不同的式子(乘数交换被认为是相同的式子)结果小的先输出

题目分析

可以发现9个数字只能出现

4 = 4 x 1

4 = 3 x 2

两种请况

将a[9] = {1,2,3,4,5,6,7,8,9} 全排列,这样可以避免9位中出现重复的数字,每次循环都比较4 = 4 x 1 ,4 = 3 x 2是否满足。

 

代码实现

使用#include <algorithm>头文件是要用到 next_permutation()函数实现全排列

#include <iostream>
#include <algorithm>
using namespace std;

int a[9] = { 1,2,3,4,5,6,7,8,9 };

int main() {
while (next_permutation(a, a + 9)) {
int n = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
int m = a[4];
int c = a[5] * 1000 + a[6] * 100 + a[7] * 10 + a[8];
if (n == m * c) {
cout << n << " = " << m << " x " << c << endl;
}
int p = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
int q = a[4] * 10 + a[5];
int u = a[6] * 100 + a[7] * 10 + a[8];
if (p == q * u) {
cout << p << " = " << q << " x " << u << endl;
}
}
return 0;
}

 

posted @ 2022-03-09 20:22  fashion幽佳  阅读(225)  评论(0)    收藏  举报