现有1、2、2、3、4、5这六个数字,把所有的排列组合打印输出到控制台上,要求:
1:  4不能排在百位上;
2:   3和5不能相邻;
3:  按照从小打到的顺序,先输出所有的偶数,再输出所有的奇数;
要求编程实现,望大家帮帮忙,谢谢

解决方案 »

  1.   

    if( rs.indexOf("4")!=2 && (!rs.toString().contains("35")&& !rs.toString().contains("53")) )判断所做的事,4不能在百位,3和5不能相连
      

  2.   

    java入门算法题,建议自己琢磨琢磨,没啥难的
      

  3.   

    package com.briup.test09;import java.util.List;public class test00 {
    public static void main(String[] args) {
    int k=0;
    List list = null;
    for(int a=1;a<6;a++){
    for(int b=1;b<6;b++){
    if(b!=a){
    for(int c=1;c<6;c++){
    if(c!=4&&c!=a&&c!=b){
    for(int d=1;d<6;d++){
    if(d!=a&&d!=b&&d!=c){
    for(int e=1;e<6;e++){
    k=10000*a+1000*b+100*c+10*d+e;
    if(e!=a&&e!=b&&e!=c&&e!=d&&ife(e)){
    if(k%2==0){
    System.out.println(k+"  ");
    }else{
    list.add(k);
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    System.out.println();
    for(Object n:list){
    System.out.print(n+"  ");
    }
    }
    //该方法判断3和5是否相邻
    private static boolean ife(int e) {
    // TODO Auto-generated method stub
    return false;
    }
    }
    不难,就是有点麻烦。判断是否相邻的那个如果楼主不会或者没人给补全的吧。我晚上再来写。现在有事先忙别的了。
    当然,我感觉这考的应该是算法的复杂度,那个我没多考虑。要不这题出的就太没水准了。