http://oj.ecustacm.cn/problem.php?id=1356
既然不连续,那么任何挨着的两数做差的绝对值不等于1。
#include<cstdio>
#include<algorithm>
#include<cstdio>
using namespace std;
int a[10]={1,2,3,4,5,6,7,8,9,10};
int main(void)
{
int n=0;
do
{
bool flag=true;
for(int i=0;i<9;i++)
{
if(abs(a[i]-a[i+1])==1)
{
flag=false;
break;
}
}
if(flag)
n++;
}while(next_permutation(a,a+10));
printf("%d\n",n);
return 0;
}