搭积木 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形,必须用
程序员文章站
2022-03-05 10:57:17
...
搭积木
小明最近喜欢搭数字积木,
一共有10块积木,每个积木上有一个数字,0~9。
搭积木规则:
每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。
最后搭成4层的金字塔形,必须用完所有的积木。
下面是两种合格的搭法:
0
1 2
3 4 5
6 7 8 9
0
3 1
7 5 2
9 8 6 4
请你计算这样的搭法一共有多少种?
请填表示总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
package seven;
public class 搭积木 {
static Boolean pd(int a,int b) {
if(b>a)
return false;
else
return true;
}
public static void main(String[] args) {
int l=0;
for(int a=0;a<=9;a++) {
for(int b=0;b<=9;b++) {
if(b==a&&a<b) continue;
if(pd(a,b))continue;
for(int c=0;c<=9;c++) {
if(c==a||c==b) continue;
if(pd(a,c)) continue;
for(int d=0;d<=9;d++) {
if(d==a||d==b||d==c) continue;
if(pd(b,d)) continue;
for(int e=0;e<=9;e++) {
if(e==a||e==b||e==c||e==d) continue;
if(pd(b,e)) continue;
if(pd(c,e))continue;
for(int f=0;f<=9;f++) {
if(f==a||f==b||f==c||f==d||f==e) continue;
if(pd(c,f)) continue;
for(int g=0;g<=9;g++) {
if(g==a||g==b||g==c||g==d||g==e||g==f) continue;
if(pd(d,g)) continue;
for(int h=0;h<=9;h++) {
if(h==a||h==b||h==c||h==d||h==e||h==f||h==g) continue;
if(pd(d,h)) continue;
if(pd(e,h))continue;
for(int i=0;i<=9;i++) {
if(i==a||i==b||i==c||i==d||i==e||i==f||i==g||i==h) continue;
if(pd(e,i)) continue;
for(int j=0;j<=9;j++) {
if(j==a||j==b||j==c||j==d||j==e||j==f||j==g||j==h||j==i) continue;
if(pd(f,i)) continue;
if(pd(f,j))continue;
l++;
}}}}}}}}}}
System.out.println(l);
}}
上一篇: LeetCode