java常考小程序

    private static void nineNineMulitTable(){ 
		/**
		 * 9*9乘法表
		 */
		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();
			} 
		} 
	}
	/**
	 * 判断是否为素数12=2*6=3*4 false
	 * @param num 质数只能被1 和他本身整除
	 * @return
	 */
	private static  boolean isPrimeNumber(int num ){
		for (int i=2;i <= Math.sqrt(num);i++){
			if(num % i == 0){
				return false;
			}
		}
		return true;
	}
	/**
	 * 递归算阶乘4*3*2*1
	 * @param num
	 * @return
	 */
	private static int f(int num){
		if(num == 1){
			return 1;
		}
		return num * f(num-1);
	}

    /**
    * “水仙花”
    */
    private static void flower(){
      for(int m=101;m<1000;m++){
        int b1 = m/100;
        int b2 = m%100/10;
        int b3 = m%10;
        int n = b1*b1*b1+b2*b2*b2+b3*b3*b3 ;
        if(m == n){
          System.out.println("--"+m);
        }
      }
  }

斐波那契数列

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

         /**
      * 方法一,使用中间变量,赋值给最近的前两个数
       */
	int f1 = 1, f2 = 1, f, M=24;      
	for(int i=3; i<=M; i++) {       
		f = f2;        
		f2 = f1 + f2;       
		f1 = f;        
		System.out.println("第" + i +"个月的兔子对数: "+f2);          
	}
        /**
	 * 方法二,递归方法
	 */
	private static int fun(int m){
		if(m<3){
			return 1;
		}else{
			return fun(m-1)+fun(m-2);
		}
	}          

常用的排序方法:

/**
	 * 冒泡排序
	 * 依次比较相邻的两个数,将小数放在前面,大数放在后面  
	 * 具有稳定性  
	 * 时间复杂度为O(n^2)  
	 * 不及堆排序,快速排序O(nlogn,底数为2)  
	 * @param array
	 */
	private static void  buddleSort(int[] array){
		for(int i=1;i < array.length;i++){
			for(int j=0;j<array.length-i;j++){
				int temp;
				if(array[j] > array[j+1]){
					temp = array[j];
					array[j] =array[j+1];
					array[j+1] = temp;
				}
			}
		}
	}
	/**
	 * 选择排序
	 * @param array
	 */
	private static void selectSort(int[] array){
		for(int i=0;i<array.length-1;i++){
			for(int j=i+1;j<array.length;j++){
				int temp;
				if(array[i] > array[j]){
					temp = array[j];
					array[j] =array[i];
					array[i] = temp;
				}
			}
		}
	}

  

    /**
	 * 二分法查找算法,前提是有序的
	 * @param args
	 */
	private static int BinarySearch(int[] array, int num){
		int low =0;
		int high = array.length - 1;
		while(low <= high){
			int mid = (low + high)/2;
			if(num > array[mid]){
				low = mid +1;
			}else if(num < array[mid]){
				high = mid -1;
			}else{
				return mid;
			}
		}
		return -1;
	}

  

 

原文地址:https://www.cnblogs.com/estellez/p/4309459.html