2016蓝桥杯省赛---java---B---6(方格填数)
生活随笔
收集整理的這篇文章主要介紹了
2016蓝桥杯省赛---java---B---6(方格填数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
方格填數
思路分析
全排列+檢查
代碼實現
package com.atguigu.TEST;import static java.lang.Math.abs;class Main{static int a[]={0,1,2,3,4,5,6,7,8,9};static int ans;public static boolean check(){if (abs(a[0] - a[1]) == 1 || abs(a[0] - a[3]) == 1 || abs(a[0] - a[4]) == 1 || abs(a[0] - a[5]) == 1 ||abs(a[1] - a[2]) == 1 || abs(a[1] - a[4]) == 1 || abs(a[1] - a[5]) == 1 || abs(a[1] - a[6]) == 1 ||abs(a[2] - a[5]) == 1 || abs(a[2] - a[6]) == 1 ||abs(a[3] - a[4]) == 1 || abs(a[3] - a[7]) == 1 || abs(a[3] - a[8]) == 1 ||abs(a[4] - a[5]) == 1 || abs(a[4] - a[7]) == 1 || abs(a[4] - a[8]) == 1 || abs(a[4] - a[9]) == 1 ||abs(a[5] - a[6]) == 1 || abs(a[5] - a[8]) == 1 || abs(a[5] - a[9]) == 1 ||abs(a[6] - a[9]) == 1 ||abs(a[7] - a[8]) == 1 ||abs(a[8] - a[9]) == 1)return false;return true;}public static void f(int k){if(k==10){//一種排列已經生成if(check())ans++;return;}//從k往后每個數字都可以放在k位for (int i = k; i < 10; i++) {int temp=a[i];a[i]=a[k];a[k]=temp;f(k+1);temp=a[i];a[i]=a[k];a[k]=temp;}}public static void main(String[] args) {f(0);System.out.println(ans);} }答案
1580
總結
以上是生活随笔為你收集整理的2016蓝桥杯省赛---java---B---6(方格填数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 声卡设置究竟在电脑的哪个位置?
- 下一篇: 2016蓝桥杯省赛---java---B