蓝桥杯 (java)纸牌三角形

标题:纸牌三角形

A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算)。要求每个边的和相等。
下图就是一种排法(如有对齐问题,参看p1.png)。

  A
 9 6
4   8

3 7 5 2

这样的排法可能会有很多。

如果考虑旋转、镜像后相同的算同一种,一共有多少种不同的排法呢?

请你计算并提交该数字。

注意:需要提交的是一个整数,不要提交任何多余内容。


笨笨有话说:
感觉可以暴力破解哦。
麻烦的是,对每个排法还要算出它的旋转、镜像排法,看看有没有和历史重复。

歪歪有话说:
人家又不让你把所有情况都打印出来,只是要算种类数。
对于每个基本局面,通过旋转、镜像能造出来的新局面数目不是固定的吗?
没有简化代码,这样暴力看起比较易懂,请大家参考嘛。
package lq;

public class 纸牌三角形 {

public static void main(String[] args) {
	// TODO Auto-generated method stub

	int count=0;
	for(int a=1;a<10;a++)
		for(int b=1;b<10;b++)
			for(int c=1;c<10;c++)
				for(int d=1;d<10;d++)
					for(int e=1;e<10;e++)
						for(int f=1;f<10;f++)
							for(int g=1;g<10;g++)
								for(int h=1;h<10;h++)
									for(int i=1;i<10;i++)
										if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i) {
											if(b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i) {
												if(c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i) {
													if(d!=e&&d!=f&&d!=g&&d!=h&&d!=i) {
														if(e!=f&&e!=g&&e!=h&&e!=i) {
															if(f!=g&&f!=h&&f!=i) {
																if(g!=h&&g!=i) {
																	if(h!=i&&a+b+d+f==a+c+e+i&&a+c+e+i==f+g+h+i) {
																		count++;
																		System.out.println(a);
																		System.out.println(b+" "+c);
																		System.out.println(d+"   "+e);
																		System.out.println(f+" "+g+" "+h+" "+i);
																	}
																}
															}
														}
													}
												}
											}
										}
	
	System.out.println(count/6);//一组数有两中镜像和三个旋转所以是除以6;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值