搭积木 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形,必须用
2020-02-01 22:16
811 查看
搭积木
小明最近喜欢搭数字积木,
一共有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); }}
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 给了一串数字:218916754,根据下面规则可以找出扣扣号码:首先删除第一个数,紧接着将第二个数放到这串数字的末尾,再将第三个数删除,并将第四个数放到这串数字的末尾......如此循环,知道剩下最后
- 【可运行的C语言】给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我
- 给定一个整数数组,两个数字的返回索引将它们加到一个特定的目标中。 您可以假设每个输入都只有一个解决方案,并且您可能不会两次使用相同的元素。
- 请找出离当前日期最近的一个日期,并且这个日期中的每个数字不可重复
- 【C实现算法00】一个数组中除一个(两个)数只出现一次外其它数字都出现了两次,找出这个数,编程实现。
- 在一个数组中除两个数字只出现1次外,其它数字都出现了2次
- 利用if else 语句编写程序读取输入,直到#。用一个感叹号代替每个句号,将原有的每个感叹号用两个感叹号替换,最后 报告进行了多少次替换。
- 一个整形数组中只有两个数字是出现一次,其它成对出现
- 20180704一台机器下面,有两个tomcat每个tomcat分别跑着一个应用,是启动了多个虚拟机吗?
- 求一个页面浮动层的例子?要求当用户上下拉动IE滚动条的时候,层自动移动,但是开始时该层与浏览器顶端有距离,最后随着移动该层停留在顶端下面不动,当移动到最上面时恢复原来。
- 在一个数组中除两个数字只出现1次外,其它数字都出现了2次
- 给出两个表示两个非负整数的非空链表。数字以相反的顺序存储,它们的每个节点都包含一个数字。添加两个数字,并将其作为链接列表返回。
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 错误:每个配置文件中只允许存在一个 元素,并且,如果存在该元素,它还必须是根 元素的第一个子元素
- 一个整形数组中只有两个数字是出现一次,其它成对出现
- 9.10 n个箱子,宽w、高h、深d,箱子不能翻转,下面的箱子的宽度、高度和深度必须大于上面的,实现一个方法,搭出最高的一堆箱子。
- 正则表达式匹配手机号码 写一个正则表达式,可以匹配尾号5连的手机号。规则: 第1位是1,第二位可以是数字3458其中之一,后面4位任意数字,最后5位为任意相同的数字。
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 错误:每个配置文件中只允许存在一个 元素,并且,如果存在该元素,它还必须是根 元素的第一个子元素
- 面试题:在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字