蓝桥杯:随意组合

题目描述:

算法思路:

主要是将其中一个数组进行全排列,=16中排列顺序,再与 另外一个数组进行匹配求和。在这里就要用到next_permutation()函数,具体用法就是直接用数组a[],进行排序next_permutation(a,a+len),其中len是该数组的长度。如果不用这个函数,也可以自己写一个二维数组将其中一个数组手动去安排也行。

代码实现:

cpp 复制代码
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int a[4] = {2, 3, 5, 8};
	int b[4] = {1, 4, 6, 7};

	int x, y, count = 0;
	do {
        //求每一个数的乘积
		int a1 = a[0] * 10+ b[0], b1 = b[0] * 10 + a[0];
		int a2 = a[1] * 10+ b[1], b2 = b[1] * 10 + a[1];
		int a3 = a[2] * 10+ b[2], b3 = b[2] * 10 + a[2];
		int a4 = a[3] * 10+ b[3], b4 = b[3] * 10 + a[3];
        //求和
		x = b1 * b1 + b2 * b2 + b3 * b3 + b4 * b4;
		y = a1 * a1 + a2 * a2 + a3 * a3 + a4 * a4;
		if(x == y)
			count ++;
	}while(next_permutation(a, a + 4));    //进行下次排序的计算
	cout << count << endl;
	return 0;

}
相关推荐
平生不喜凡桃李3 分钟前
LeetCode:二叉树的最近公共祖先
算法·leetcode·职场和发展
好学且牛逼的马17 分钟前
【Hot100|17-LeetCode 73. 矩阵置零 - 完整解法详解】
算法·leetcode·职场和发展
数说星榆1811 小时前
前后端分离开发流程-泳道图设计与应用
论文阅读·职场和发展·毕业设计·流程图·职场发展·论文笔记·毕设
iAkuya1 小时前
(leetcode)力扣100 55全排列
算法·leetcode·职场和发展
虎头金猫2 小时前
内网导航站 “出圈”!用 cpolar 解锁 Dashy 远程访问新玩法
java·c++·python·程序人生·职场和发展·php·程序员创富
XH华2 小时前
备战蓝桥杯,第六章:C++语言的输入输出(下)
c++·职场和发展·蓝桥杯
100分简历3 小时前
无图标简洁大方的简历模板下载
人工智能·面试·职场和发展·pdf·编辑器
v_for_van3 小时前
力扣刷题记录1(无算法背景,纯C语言)
算法·leetcode·职场和发展
程序员杰哥4 小时前
如何写出高效的测试用例?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
客卿1234 小时前
力扣二叉树简单题整理(第二集)
算法·leetcode·职场和发展