分享Java面试中遇到的一些经典算法题目

huangxiaoyong 2009-04-04 12:53:45
加精
1.写一个方法,用一个for循环打印九九乘法表
   
/**
* 打印九九乘法口诀表
*/
public void nineNineMulitTable(){
for (int i = 1,j = 1; j <= 9; i++) {
System.out.print(i+"*"+j+"="+i*j+" ");
if(i==j){
i=0;
j++;
System.out.println();
}
}
}


2.给定一个java.util.Date对象,如何转化为”2007-3-22 20:23:22”格式的字符串
 
/**
* 将某个日期以固定格式转化成字符串
* @param date
* @return str
*/
public String date2FormatStr(Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);
return str;
}

3.写一个方法,能够判断任意一个整数是否素数

/**
* 判断任意一个整数是否素数
* @param num
* @return boolean
*/
public boolean isPrimeNumber(int num)
{
for (int i = 2; i <= Math.sqrt(num); i++) {
if(num%i==0)
{
return false;
}
}
return true;
}
...全文
19466 562 打赏 收藏 转发到动态 举报
写回复
用AI写文章
562 条回复
切换为时间正序
请发表友善的回复…
发表回复
午夜孤独 2011-04-14
  • 打赏
  • 举报
回复
好东西!值得学习!
  • 打赏
  • 举报
回复
嗯!不错,算法很重要
  • 打赏
  • 举报
回复
恩 有点意思哈
xiaoi_haha 2010-11-16
  • 打赏
  • 举报
回复
楼主,你这个二分法查询,不先排好序根本不能用啊。排好序原来的下标又找不到了。
xiaoi_haha 2010-11-12
  • 打赏
  • 举报
回复
[Quote=引用 48 楼 gg1668936 的回复:]
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+" ");
}
System.out.println();
}


这样会更快些,当然,只算到9一点也看不出来,可以把9换成999试下
[/Quote]
用这种方法复杂度是O(n的平方),用楼主的方法复杂度是O(n),怎么是你的这种方法更快呢?
xiaoi_haha 2010-11-12
  • 打赏
  • 举报
回复
3.写一个方法,能够判断任意一个整数是否素数

/**
* 判断任意一个整数是否素数
* @param num
* @return boolean
*/
public boolean isPrimeNumber(int num)
{
for (int i = 2; i <= Math.sqrt(num); i++) {
if(num%i==0)
{
return false;
}
}
return true;
}
--------------------------
请问为什么要用Math.sqrt(num); 不是应该i<=num吗?而且Math.sqrt(num)里的参数是int,我在API只看到double类型的参数,请问楼主编译时没有出错吗?
杰锋 2010-11-09
  • 打赏
  • 举报
回复
觉得第一题应该是: i==j && j!=9
还有第五题如果数组元素不是从小到大就错了,应该排序
yuewenshuang 2010-09-16
  • 打赏
  • 举报
回复
恩,挺经典的,也许面试能用到
zkp1990 2010-07-18
  • 打赏
  • 举报
回复
学习了
menghuanlanshan 2010-07-18
  • 打赏
  • 举报
回复
哦,学习贴啊。。。顶,保留了~~~
totorest 2010-07-17
  • 打赏
  • 举报
回复
hao dong dong a shou xia le
lovehmj 2010-07-07
  • 打赏
  • 举报
回复
nice!
wanding_ 2010-07-07
  • 打赏
  • 举报
回复
面试考这么简单的么。
是不是还来个鸡兔同笼。
我遇到的面试题:
a,b两个变量,不用第三个变量,怎么交换。
yuanyemars 2010-07-06
  • 打赏
  • 举报
回复
第4个,给的明显有问题。。。因为整形的位数显示~,这题如果按照
预估结果位数 --判定是否运算-- 执行 or 提示 的话,怎么弄呢?


哈哈哈
lztyll123 2010-07-04
  • 打赏
  • 举报
回复
LZ发帖很认真,谢谢共享,顶!!!
hzzgh 2010-07-04
  • 打赏
  • 举报
回复
的确很基础,顶一下
JerryZhou_ 2010-07-04
  • 打赏
  • 举报
回复
学习了...
tristan0602 2010-07-04
  • 打赏
  • 举报
回复
很简单的 题。。
Acmey 2010-07-03
  • 打赏
  • 举报
回复
学习学习
wlwshang 2010-07-03
  • 打赏
  • 举报
回复
[Quote=引用 88 楼 yingmingbao 的回复:]

引用 84 楼 feikailina 的回复:
帮忙看看为什么我的结果有问题 IDE MyEclipse 6.0 结果怎么是 1932053504
public class Testt {

public static void main(String[] args) {
Testt t = new Testt();
System.out.println(t.factorial(13……
[/Quote]

public long factorial()
加载更多回复(542)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧