当前位置: 代码迷 >> Java相关 >> 新人求教!巧取数目字:1-6这6个数,放进成倒三角排列的○里,要求数字不能重复,且下方数字为相邻上方两个数字之差
  详细解决方案

新人求教!巧取数目字:1-6这6个数,放进成倒三角排列的○里,要求数字不能重复,且下方数字为相邻上方两个数字之差

热度:7240   发布时间:2013-02-25 21:45:27.0
新人求教!巧取数字:1-6这6个数,放进成倒三角排列的○里,要求数字不能重复,且下方数字为相邻上方两个数字之差
一个公司的面试题,有点类似解谜,求各位大神帮忙

题目是这样的:
1-6这6个数,放入倒三角排列的○里,要求不能重复,且下方数字为相邻上方两个数字之差,问有多少种排列,要求用程序写出来

给了一个提示,有这样一个图形
○○
 ○
那么
1 3 3 1
 2 和 2 都是正确的

问题是在下图的○里填入符合题目要求的数字,有多少种排列呢
○○○
 ○○
  ○

我自己在纸上写了一种
1 6 4
 5 2
  3
供各位前辈理解题意...

我想了好久实在没有程序化思路只有求助了
望各位前辈帮忙
不胜感谢!

------解决方案--------------------------------------------------------
一个很笨的办法,供参考啊!
Java code
package csdn.calculate;import java.util.Arrays;public class SixNumberArrange{    public static final int MAX=6;                //数据范围。    //对数组进行判断,逻辑即是否符合题目要求。符合返回true,否则返回false.    //    public static boolean isOk(int[] inputArray)    {        if((Math.abs(inputArray[0]-inputArray[1])==inputArray[3])&&                (Math.abs(inputArray[1]-inputArray[2])==inputArray[4])&&                (Math.abs(inputArray[3]-inputArray[4])==inputArray[5]))        {            return true;        }        else        {            return false;        }    }    //主函数。    public static void main(String[] args)    {        //创建一个整型数组。        int[] input=new int[MAX];        //create an array        //判断开始。        for(int i=1;i<=MAX;i++)        {         input[0]=i;                //数组第一个位置。         for(int j=1;j<=MAX;j++)         {          if(j==i) { continue;}            //前面如果出现了这个数,循环从新开始,以此类推。          input[1]=j;                   for(int h=1;h<=MAX;h++)          {           if(h==i||h==j){continue;}           input[2]=h;           for(int k=1;k<=MAX;k++)           {                 if(k==i||k==j||k==h){continue;}             input[3]=k;             for(int m=1;m<MAX;m++)             {               if(m==i||m==j||m==h||m==k){ continue;}               input[4]=m;               for(int n=1;n<=MAX;n++)               {             if(n==i||n==j||n==h||n==k||n==m){continue;}             input[5]=n;             if(isOk(input))            //判断。             {                   System.out.println(Arrays.toString(input));             }               }             }           }          }         }        }    }}
  相关解决方案