紙牌三角形
題目.png
此題實(shí)在是沒什么好的想法土浸,只好強(qiáng)行暴力遍歷了昼弟。。希望有大佬能提供更加簡(jiǎn)潔的思路
我的想法是普办。工扎。將三個(gè)頂點(diǎn)按從大到小順序排列遍歷次序,在頂點(diǎn)順序固定的情況下就不可能存在鏡像和反轉(zhuǎn)了衔蹲。然后再將除頂點(diǎn)外的點(diǎn)依次不重復(fù)地遍歷肢娘。。
JAVA17_2.java
class CardDelta{
int top=1;
int left=3;
int right=2;
/*
A
9 6
4 8
3 7 5 2
* */
public CardDelta() {
}
public void sort3Num() {
for(int i = 1; i < 8; i++) {
for(int j = i+1; j < 9; j++) {
for(int k = j+1; k < 10; k++) {
//System.out.println(""+i+j+k);
//在此循環(huán)中確定三個(gè)定點(diǎn)的值舆驶,然后將其傳入一個(gè)函數(shù)中
//在函數(shù)中遍歷所有節(jié)點(diǎn)情況
runOver(i, j, k);
}
}
}
}
public void runOver(int top, int left, int right) {
int l1, l2, r1, r2, t1, t2;
int tag=0;
for(l1 = 1; l1 < 10; l1++) {
if(l1!=top && l1!=left && l1!=right) {
for(l2=1; l2<10; l2++) {
if (l2==l1 || (l2==top || l2==left || l2==right)) {
continue;
}
for(r1=1; r1 < 10; r1++) {
if (r1==l1 || r1==l2 || (r1==top || r1==left || r1==right)) {
continue;
}
for(r2=1; r2 < 10; r2++) {
if (r2==r1 || r2==l1 || r2==l2 || (r2==top || r2==left || r2==right)) {
continue;
}
for(t1=1; t1 < 10; t1++) {
if (t1==r1 || t1==l1 || t1==l2 || (t1==top || t1==left || t1==right)) {
continue;
}
for(t2=1; t2 < 10; t2++) {
if (t2==r1 || t2==l1 || t2==l2 || (t2==top || t2==left || t2==right)) {
continue;
}
if(left+l1+l2+top == top+r1+r2+right && top+r1+r2+right == left+t1+t2+right) {
tag++;
System.out.println("left:"+left+l1+l2+top+"\nright:"+top+r1+r2+right+"\ndown:"+left+t1+t2+right);
}
}
}
}
}
}
}
}
System.out.println(tag);
}
}
public class JAVA17_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
CardDelta cDelta = new CardDelta();
cDelta.sort3Num();
}
}
運(yùn)行結(jié)果
運(yùn)行結(jié)果.png
目測(cè)似乎沒有問題橱健,并不知道正確答案,有錯(cuò)誤的話歡迎指正沙廉。