链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述:(1002排列式)
7254是一个不寻常的数,因为它可以表示为7254 = 39 x 186,这个式子中1~9每个数字正好出现一次
输出所有这样的不同的式子(乘数交换被认为是相同的式子)
结果小的先输出;结果相同的,较小的乘数较小的先输出。
输入描述:
每一行输出一个式子,式子中的等号前后空格、乘号(用字母x代表)前后空格较小的乘数写在前面。
运用:
C++头文件中包含next_permutation(iteration_first,iteration_last)可以求下一个全排列,返回bool类型值;prev_permutation(iteration_first,iteration_last)可以求上一个全排列,返回bool类型值。
解析:题目要求,1~9每个数字正好出现一次,则结果为四位数的满足条件,四位数可以是一位数乘以四位数,也可以是两位数乘以三位数,因此有两种情况。
代码如下:
#include#include //包含next_permutation(iteration_first,iteration_last) //可以求下一个全排列,返回bool类型值 using namespace std; int main() { int a[9]={1,2,3,4,5,6,7,8,9}; do { int b,c,d; //1.四位数=一位数*四位数 b=a[0]*1000+a[1]*100+a[2]*10+a[3]*1; c=a[4]; d=a[5]*1000+a[6]*100+a[7]*10+a[8]; if (b==c*d) cout< 运行结果如下:
4396 = 28 x 157
5346 = 18 x 297
5346 = 27 x 198
5796 = 12 x 483
5796 = 42 x 138
6952 = 4 x 1738
7254 = 39 x 186
7632 = 48 x 159
7852 = 4 x 1963



