几个常见JAVA编程题

来源:互联网 发布:mysql 快照读 当前读 编辑:程序博客网 时间:2024/06/03 20:06

1、打印100以内的素数

for(int i=2; i<num; i++){

if (num %i ==0){

return false;

}

     }

     return true;

②改进:

long sprtNum = (long) Math.sqrt(num);

for(int i=2; i<sqrtNum; i++){

if (num %i ==0){

return false;

}

}

     return true;

2、打印九九乘法表


3、打印1000以内的回文数字

  int num =12345;

     String str = String.ValueOf(num);  //得到字符串格式的数字

     StringBuffer sb = new StringBuffer(str);

     sb.Reverse();

    String newStr = sb.toString();

    return str.equals(newStr);

  int temp = 0;

     while(num>0){

     temp = temp*10+num%10;

num /=10;

    }

    int newVal = temp;

4、获得任意一个时间的下一天的时间

long addTime = 1;

addTime *=1;

addTime *=21;

addTime *=60;

addTime *= 60;

addTime *= 1000;

Date date = new Date(d.getTime()+addTime);

return date;

550个人围成一圈,数到33的倍数时出圈,问剩下的人是谁?原来的位置是多少?

元素存储用数组或链表—>用一个while循环进行出圈,知道只剩下一个元素留下

public class Cycle{

public static int cycle(int total,int k){

List<Ingeter> dataList = new LinkedList<Integer>();

for(int i =0; i<total;i++) 

dataList.add(new Ingeter(i+1));

int index = -1;

while (dataList/size()>1) {

index = (index+k)&dataList.size();  //得到应该出局的下标

dataList.remove(index—);  、、去除元素

}

return (Integer) dataList.get(0)).intValue();  //返回剩下的数的值

}

public static void main(String[] args) {

System.out.println(“剩下的数字的原来位置是:”+ cycle(50,3));

}

}

6、将某个时间以固定格式转化成字符串

DataFormat的使用

SimpleDataFormat pdf = new SimpleDataFormat(“yyyy—MM—dd HH : mm:  ss”);

String str = pdf.format(date);

7Java实现冒泡排序

基本思想:依次比较相邻的两个数,小数放前面,大的放后面,直至比较最后两个数,一一趟结束,第二趟从

int temp = 0;

for (int i = 0; i< arrays.length; i++) {

for ( int j = 0; j < arrays.length-i-1; j++) {

if(array[j] >array[j+1] ){

temp = arrays[j];

arrays[j] = arrays[j+1];

arrays[j+1] = temp; 

}

}

}

8Java实现插入排序算法

基本思想: 将一个数据插入到已经排好序的有序数据中,得到一个新的、数量加1的有序数据

适合于少量数据的排序

for(int i = 0; i< length; i++) {

int j =0 ;

int temp = array[i]; 

for(int j =i; j>0; j—) {

if (array[j-1] > temp) {

array [j] = array [j-1]

}else break;

}

array[j] = temp;

}

9Java实现快速排序算法

快速排序利用递归原理,将数组无限制分成两个部分,知道所有数据都排好序为止

通过一趟排序,将待排数据分为独立的两部分,一部分比另外一部分的所有数据都要小,然后再对两遍数据分别进行快速排序

if (low >= high)  return ;  //一个数字

if ( (high-low) == 1) {      //两个数字

if (array[0] >array[1]) 

swap(array,0,1);

return;

}

int mid = a[low];

int left = low+1;

int right = high;

while( left < right) {

while(left<right && left <=high) {

if (array[left] > mid)    break;

left++;

}

while(left<=right && right > low) {

if (array[right] <= mid)    break;

right—;

}

if (left < right)  swap(array,right,left);

}

swap(a,low,right);  //交换中间数字

sort(a,low,right);     //排序前面数组

sort(a,right+1,high);  //排序后边数组


10、用Java实现一个链表类

class Node {

Object data;

Node next;

public Node(Object data) {

super();

this.data = data;

this.next = null;

}

}

Node head;

public myList() {

head = null;

}

public void clear() {


}



0 0
原创粉丝点击