赞
踩
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
在 2 行 5 列的格子中填入 1 到 10 的数字。 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如下图所示的 2 种,就是合格的填法。
请你计算一共有多少种可能的方案。
- public class Main {
- static int ans=0;
- static int[] a=new int[10];
- static int[] biaoji=new int[11];
- public static void main(String[] args) {
- dfs(0);
- System.out.println(ans);
- }
- public static void dfs(int n){
- if(n==10){
- if(check(a)){
- ans++;
- return;
- }
- else{
- return;
- }
- }
- for(int i=1;i<=10;i++){
- if(a[n]==0&&biaoji[i]==0){
- biaoji[i]=1;
- a[n]=i;
- dfs(n+1);
- a[n]=0;
- biaoji[i]=0;
- }
- }
- }
- public static boolean check(int[] b){
- if(a[1]<a[0]||a[2]<a[1]||a[3]<a[2]||a[4]<a[3]||a[6]<a[5]||a[7]<a[6]||a[8]<a[7]||a[9]<a[8]){
- return false;
- }
- if(a[5]<a[0]||a[6]<a[1]||a[7]<a[2]||a[8]<a[3]||a[9]<a[4]){
- return false;
- }
- return true;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。