#include<iostream.h>
#include <conio.h>
#include<math.h>
void Swap ( int &a ,int & b)
{
int temp = a; a = b; b = temp;
}
void Perm(int e[], int k, int m,int b[],int k1,int m1)
{
if( k1== m1 )
{
if(k==m)
{
int flag,i;
for( i=3;i<m-1;i++)
{
if ((e+e[i+1])==b) {flag=1;continue;}else {flag=0;break;}
( a- _2 s; ~1 s$ }
}
if (i==m-1)
if((e[1]+e[2])==b[1])
if((e[m-1]+e[m]+e[1])==b[m-1]){
for(int j=1;j<=m;j++)
{
cout<<e[j]<<" ";
}
cout<<endl;
}
}
else
{
for ( int i = k; i <= m; i ++)
{
Swap( e[k],e );
Perm( e,k + 1, m,b,k1,m1 ) ;
Swap( e[k], e );
}
}
}
else
{
; U# u' A& B: g1 J$ G
0 e" ` `$ [% r
for ( int j= k1; j<= m1; j ++)
{
Swap( b[k1],b[j] );
Perm( e,k , m,b,k1+1,m1 ) ;
Swap( b[k1], b[j] );
}
}
}
void main()
{
int n,c=-1,d=1,i,j;
cout<<"请输入一个大于2的偶数n:\n";
cin>>n;
int e[20];
int b[20];
/* e[1]=6;
e[2]=-1;
e[3]=5;
e[4]=-2;
e[5]=4;
e[6]=-3;
e[7]=3;
e[8]=-4;
e[9]=2;
e[10]=-5;
e[11]=1;
e[12]=-6;*/
for(i=1;i<=n;i++)
{
e=c*(i+1)/2;
c=-c;
}
for(j=1;j<n;j++)
{
b[j]=d*(j/2);
d=-d;
}
int m1=n-1;
int m=n;
int k=1;int k1=1;
Perm(e,k,m,b,k1,m1);
cout<<endl<<"敲任意键(除回车键)退出..."<<endl;
getch();
) q6 m4 b/ q V, g8 T4 H
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |