* <pre> 
  * 算法题: 
  *  1、2个三位数相加,结果是一个4位数 
  *  2、2个三位数,必须每一个数字都不同 
  *  3、相加的结果,每一位数,也都不同 
  *  4、打印所有的可能  

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【chaoqunhe】截止到2008-07-09 16:56:21的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:40                       每贴平均分数:13                       
    回帖的总数量:17                       得分贴总数量:1                        回帖的得分率:5%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:2                        未结的总分数:20                       
    结贴的百分比:33.33 %               结分的百分比:50.00 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   


    import java.util.ArrayList;/**
     * 1、2个三位数相加,结果是一个4位数 
      *2、2个三位数,必须每一个数字都不同 
      *3、相加的结果,每一位数,也都不同 
      *4、打印所有的可能
     */
    public class Test {
    /**
     * 判断数字字符串中是否有相同的数字
     * @param s
     * @return
     */
    public static boolean equal(String s){
    char[] c = s.toCharArray();
    for(int i=0;i<c.length;i++)
    for(int j=i+1;j<c.length;j++){
    if(c[i] == c[j])
    return true;
    }
    return false;
    }

    /**
     * 筛选所有可能的数
     */
    public static void filter(){
    ArrayList<String> array = new ArrayList<String>();
    for(int i=102;i<987;i++){
    if(equal(""+i))
    continue;
    for(int j=i+100;j<987;j++){
    if(equal(""+j))
    continue;
    int k = i + j;
    if(k < 1000)
    continue;
    if(equal(""+k) || equal(""+i+j+k))
    continue;
    array.add( i+","+j+","+k );
    }
    }
    for(int i=0;i<array.size();i++){
      System.out.println(array.get(i));
    }
    } public static void main(String[] args){
    filter();
    }
    }
    还可以利用正则表达式匹配。