点击查看:蓝桥杯历年真题 题解目录
搭积木
思路分析:
1. 很显然的全排列问题
2. 判断的时候注意 上方的数字比下方小
package java_2016_C;
public class Main007_搭积木 {
static int ans;
static int[]a = {0,1,2,3,4,5,6,7,8,9};
public static void main(String[] args) {
f(0);
System.out.println(ans);
}
private static void f(int k) {
if(k==10&&a[0]<a[1]&&a[0]<a[2]&&a[1]<a[3]&&a[1]<a[4]&&a[2]<a[4]&&a[2]<a[5]
&&a[3]<a[6]&&a[3]<a[7]&&a[4]<a[7]&&a[4]<a[8]&&a[5]<a[8]&&a[5]<a[9]) {
ans++;
}
// 全排列模板
for(int i=k;i<10;i++) {
int t=a[i]; a[i]=a[k];a[k]=t;
f(k+1);
t=a[i]; a[i]=a[k];a[k]=t;
}
}
}