全排列函数:
#include<algorithm>
int array[10]={1,2,3,4,5,6,7,8,9,0}
do{
........
}while(newxt_permutation(array,array+10));
举例:计蒜客_2018蓝桥杯_模拟5_素数个数
#include<iostream> #include<algorithm> #include<cmath> #include<iomanip> using namespace std; bool SS(int n) {//求素数(质数)函数 for (int i = 2; i*i <= n;i++) {//代码写的个人认为还算不错! if (n%i==0) { return 0; } } return 1; } int main() { int Array[8] = { 0,1,2,3,4,5,6,7}; int account = 0; do { if (Array[7]!=0) {//头一个数不能为0!! if (SS(Array[0] + Array[1] * 10 + Array[2] * 100 + Array[3] * 1000 + Array[4] * 10000 + Array[5] * 100000 + Array[6] * 1000000 + Array[7] * 10000000)) { account++; } } } while (next_permutation(Array,Array+8)); cout << account << endl; return 0; }
.