package a8;
/*
*
将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。
请计算一共有多少种不同的排列方案。
注意,需要提交的是一个整数,不要填写任何多余的内容。
* */
public class T1_图书排列 {
static int sum = 0;
static int[] array = {1,2,3,4,5,6,7,8,9,10};
static void check() {
for (int i = 0; i < array.length-1; i++) {
if(array[i]==array[i+1]+1||array[i]==array[i+1]-1) {
return;
}
}
sum++;
}
static void f(int index){
if(index == array.length-1) {
check();
return;
}
for (int i = index; i < array.length; i++) {
{
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
f(index+1);
{
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}
public static void main(String[] args) {
f(0);
System.out.println(sum);
}
}
/*
* 479306
* 思路:
* 全排列最后求值
* ****************************************
* 1.一定要背会全排列模板
* 2.用少量测试数据计算
* */
蓝桥杯国赛8-javaA-1-图书排列
最新推荐文章于 2024-06-12 10:00:23 发布