本帖最后由 fangmingshijie 于 2014-03-27 13:10:49 编辑

解决方案 »

  1.   

    顶一个先~~
    另外从性能的角度提一些建议:
    求完数,判断i是否为完数不必循环到i-1,只要循环到sqrt(i)即可 (if (i%j==0) result = result +j+i/j)
    求素数可以用筛数法,
      

  2.   


    简写. 
    好吧 其实是瞎写.
    范围开头^和结尾 +$
    都是可以省略的直接利用ASC码就可以,正则表达式就把问题搞复杂了
    还有要获取某一个字符,用charAt()就可以,不用subString()吧
      

  3.   

    刚刚写了下递归那个,然后就想到一直听说java效率低下的问题?为什么说java效率低,我刚刚将同一个算法,就是兔子那个,运算到1000,运行在VC和eclipse下面,运行到后面,eclipse下出的结果计算可以感觉明显快点。
      

  4.   

    大家好,今天是第三天.
    来一个数字换位求总得算法
    ----------------------------------------------------------------------------------------------public class Seven {
    /**
     * 题目7:有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
     * @author 林天
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void seven(){
    List cont=new ArrayList(); //形成的三位数保存在这里
    List list=new ArrayList(); //保存0,1,2,3,4 四个数字.
    list.add(0);list.add(1);list.add(2);list.add(3);list.add(4);
    for(int i=0;i<list.size();i++){
    if(list.get(i).equals(0)) //0不能做首位
    continue;
    for(int j=0;j<list.size();j++){
    if(list.get(i)==list.get(j)) //数字不能重复出现
    continue;
    for(int k=0;k<list.size();k++){
    if(list.get(k)==list.get(i) || list.get(k)==list.get(j)) //数字不能重复出现
    continue;
    int bai=(Integer) list.get(i),shi=(Integer) list.get(j),ge=(Integer) list.get(k);
    int result=bai*100+shi*10+ge; //拼成三位数
    cont.add(result); //添加到集合中,统计个数
    }
    }
    }
    System.out.println("形成的三位数共:"+cont.size()+"个");
    System.out.print("分别是:");
    for(Object o:cont){
    System.out.print(o+" ");
    }
    }
    public static void main(String[] args) {
    System.out.println("-----begin-----");
    System.out.println("题目7:有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?");
    seven();
    }
    }
    -----begin-----
    题目7:有0、1、2、3、4五个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    形成的三位数共:48个
    分别是:102 103 104 120 123 124 130 132 134 140 142 143 201 203 204 210 213 214 230 231 234 240 241 243 301 302 304 310 312 314 320 321 324 340 341 342 401 402 403 410 412 413 420 421 423 430 431 432 
      

  5.   

    lz27楼的代码前边应该加上这个import java.util.ArrayList;吧,还有就是8行9行的List应该写成ArrayList,我的反正是如果不改不能用,不知其他人咋样