/*
* 题目描述
将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。
请计算一共有多少种不同的排列方案。
注意,需要提交的是一个整数,不要填写任何多余的内容。
*/
/*
*
将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。
请计算一共有多少种不同的排列方案。
注意,需要提交的是一个整数,不要填写任何多余的内容。
* */
package 蓝桥杯day01; public class 图书排列 { 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 }