蓝桥杯:随意组合

题目描述:

算法思路:

主要是将其中一个数组进行全排列,=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;

}
相关推荐
天真小巫2 小时前
2026.8.30总结
职场和发展
搜词研究员3 小时前
# 德立教育和达德教育哪个好?学历提升选哪家?
考研·职场和发展·学习方法·高考
Chester_19999 小时前
CSP202206C.角色授权
开发语言·数据结构·c++·蓝桥杯
RisunJan9 小时前
Android 面试知识点整理
android·面试·职场和发展
RisunJan10 小时前
uni-app 面试知识点梳理
面试·职场和发展·uni-app
Chester_199918 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
ychqsq1 天前
144.扎根
经验分享·职场和发展
阿宁学科技术库1 天前
关于“库库AI”在股票投研场景实用性的技术观察
大数据·人工智能·职场和发展
evans在进步1 天前
LeetCode 238 除自身以外数组的乘积:前缀积与后缀积详解
算法·leetcode·职场和发展
Brilliantwxx1 天前
【C++】初入嵌入式C++复习-----经典面试题100道
开发语言·c++·算法·面试·职场和发展