Java教程

【思特奇杯·云上蓝桥-算法集训营】第1周

本文主要是介绍【思特奇杯·云上蓝桥-算法集训营】第1周,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

/*
         * 题目描述
        将编号为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
		
	
	}


这篇关于【思特奇杯·云上蓝桥-算法集训营】第1周的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!