老师给我门留了个作业  !
  1 2 3 4 5 6 7 8 9 1 - 9 内的三位数 乘 两位数  =  四位数 条件是数字不能从复出现   大家帮忙想想 怎么做 谢谢了

解决方案 »

  1.   

    public class Select{
      public static void main(String arg[]){ 
      new Test().mul();
    }
    }class Test{ 
      public void mul(){
         int a[]=new int[100];
         int k=0;

         for(int i=1 ;i<10;i++)
           for(int j=1;j<10;j++){
             if(i==j) continue;
    else { a[k]=i*10+j;k++;
                  }
           }//get the two number
         for(k=0;k<100;k++){
           for(int l=1;l<10;l++)
             for(int m=1;m<10;m++)
               for(int n=1;n<10;n++){
                  if(l==m||l==n||m==n) continue;
         else{ int o=l*100+m*10+n;
               if(a[k]==0) return;
               else if((a[k]*o)>1000&&(a[k]*o)<10000)
                    System.out.print(""+a[k]+"*"+o+"="+a[k]*o+"  ");
          }
     }
          }
      }
    }
      

  2.   

    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.List;class Test
    {

    public List arrange(List numList)
    {
    List result = new ArrayList();
    //System.out.println(numList);
    int len = numList.size();
    if (len == 1)
    {
    return numList;
    }
    for (int i=0; i<len; i++)
    {
    String str = (String)numList.get(i);
    List others = new ArrayList();
    others.addAll(numList.subList(0,i));
    others.addAll(numList.subList(i+1,len));
    List retain = arrange(others);
    int retainLen = retain.size();
    for (int j=0; j<retainLen; j++)
    {
    result.add(str + (String)retain.get(j));
    }
    }
    return result;
    }

    public static void main(String[] args)
    {
    Test t = new Test();

    List numList = new ArrayList();
    numList.add("1");
    numList.add("2");
    numList.add("3");
    numList.add("4");
    numList.add("5");
    numList.add("6");
    numList.add("7");
    numList.add("8");
    numList.add("9");

    List r = t.arrange(numList);

    int len = r.size();
    for (int i=0; i<len; i++)
    {
    //System.out.println(r.get(i));
    String str = (String)r.get(i);
    int m = Integer.parseInt(str.substring(0,3));
    int n = Integer.parseInt(str.substring(3,5));
    int k = Integer.parseInt(str.substring(5,9));

    if (m * n == k)
    {
    System.out.println(m + "*" + n + "=" + k);
    }
    } }
    }答案是:
    138*42=5796
    157*28=4396
    159*48=7632
    186*39=7254
    198*27=5346
    297*18=5346
    483*12=5796