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

1.写一个方法,用一个for循环打印九九乘法表

Java代码
/**
* 打印九九乘法口诀表
*/
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”格式的字符串

Java代码

/**
* 将某个日期以固定格式转化成字符串
* @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.写一个方法,能够判断任意一个整数是否素数


Java代码

/**
* 判断任意一个整数是否素数
* @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;
}


4.写一个方法,输入任意一个整数,返回它的阶乘
Java代码

/**
*获得任意一个整数的阶乘
*@param n
*@returnn!
*/
public int factorial(int num)
{
//递归
if(num == 1)
{
return 1;
}
return num*factorial(num-1);
}
5.写一个方法,用二分查找法判断任意整数在任意整数数组里面是否存在,若存在就返回它在数组中的索引位置,不存在返回-1

Java代码
1./**
2. *二分查找特定整数在整型数组中的位置(递归)
3. *@param dataset
4. *@param data
5. *@param beginIndex
6. *@param endIndex
7. *@return index
8. */
9. public int binarySearch(int[] dataset,int data,int beginIndex,int endIndex){
10. int midIndex = (beginIndex+endIndex)/2;
11. //如果查找的数要比开始索引的数据要小或者是比结束索引的书要大,或者开始查找的索引值大于结束的索引值返回-1没有查到
12. if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
13. return -1;
14. }
15. if(data <dataset[midIndex]){
16. return binarySearch(dataset,data,beginIndex,midIndex-1);
17. }else if(data>dataset[midIndex])
18. {
19. return binarySearch(dataset,data,midIndex+1,endIndex);
20. }else {
21. return midIndex;
22. }
23. }
24.
25. /**
26. *二分查找特定整数在整型数组中的位置(非递归)
27. *@param dataset
28. *@param data
29. *@return index
30. */
31. public int binarySearch(int[] dataset ,int data)
32. {
33. int beginIndex = 0;
34. int endIndex = dataset.length - 1;
35. int midIndex = -1;
36. if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){
37. return -1;
38. }
39. while(beginIndex <= endIndex) {
40. midIndex = (beginIndex+endIndex)/2;
41. if(data <dataset[midIndex]) {
42. endIndex = midIndex-1;
43. } else if(data>dataset[midIndex]) {
44. beginIndex = midIndex+1;
45. }else {
46. return midIndex;
47. }
48. }
49. return -1;
50. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值