📄 king.cpp
字号:
// king.cpp : Defines the entry point for the console application.
//
// 文 件 名: king.cpp
// 创 建 者: 刘志祥
// 创建时间: 2003-12-21
// 功能描述: 金山面试题目 1,2,3,4,5,6 这6个数,生成一个环,
// 要求相邻的两个之和为素数,共有多少种排列
#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<cmath>
#include<algorithm>
using namespace std;
void print(int a[],int n)
{
ofstream file("king.txt");
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
file<<a[i]<<" ";
}
file<<endl;
cout<<endl;
}
void adjacentsum(int a[],int b[],int n)
{
for(int i=0;i<n-1;i++)
b[i]=a[i]+a[i+1];
b[n-1]=a[0]+a[n-1];
}
int prim(int m)
{
int k=sqrt(m);
for(int i=2;i<=k;i++)
if(m%i==0)
return 0;
return 1;
}
bool select(int a[],int n)
{
for(int i=0;i<n;i++)
if(!prim(a[i]))
return false;
return true;
}
int main(int argc, char* argv[])
{
int a[]={1,2,3,4,5,6};
int b[6];
while(next_permutation(a,a+6))
{
adjacentsum(a,b,6);
if(select(b,6))
print(a,6);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -