解决方案 »
- com.mysql.jdbc.exceptions.MySQLSyntaxErrorException
- struts2类型转换问题
- 在javascript里如何循环判断2个数组里的值是否相等
- 韩语朋友 帮我看一下 谢谢
- 请教高手hibernate POJO的继承问题?
- 使用JBuilder+SQL Servr200+weblogic运行工程时出现的问题,那为高手指点下
- socket通讯的问题。。。请各位高手帮帮忙。。[在线等待]
- 求在TOMCAT5下面最简单的一个SERVLET实现
- 如何用jdom创建一个新的XML文件,该文件用一个schema文件校验。
- servlet找不到?!
- MyEclipse 启动tomcat无反应,关闭后弹出提示 a java exception has occurred
- Tomcat部署后 webapps目录的项目目录下没有jsp网页
另外从性能的角度提一些建议:
求完数,判断i是否为完数不必循环到i-1,只要循环到sqrt(i)即可 (if (i%j==0) result = result +j+i/j)
求素数可以用筛数法,
简写.
好吧 其实是瞎写.
范围开头^和结尾 +$
都是可以省略的直接利用ASC码就可以,正则表达式就把问题搞复杂了
还有要获取某一个字符,用charAt()就可以,不用subString()吧
来一个数字换位求总得算法
----------------------------------------------------------------------------------------------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