Java常见算法编程题

题目一:

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

程序分析:每个月的兔子总对数依次为:1,1,2,3,5,8,13.......当前月的兔子数是前两个月兔子数之和

Public class FirstRubbit(){
    public static final int MaxNumber=15;
    public static void main(String args[]){
        int i1=1;
        int i2=1;
        int i=0;//用来存储前一个月的兔子总对数
        for(int j=3;j<=MaxNUmber;j++){
            i=i2;
            i2=i1+i2;//用来存储当前月的兔子总数
            i1=i;//用来存储前两个月的兔子总数
            System.out.println("第"+j+"个月,"+"兔子总对数为"+i2);
        }
    }

}

题目二:判断101~200之间有多少个素数,并输出所有素数。

分析:若是素数则不能被2到根号下这个数的所有数整除

Public class PrimeNumber(){
    int count=0;//计算素数的数量
    for(int x=101;x<200;x++){
        boolean flag=true;//用来判断是否是素数
        for(int i=2;i<=Math.sqrt(x);i++){
            if(x%i==0){
               flag=false;//不是素数
               break;
            }
        }
        if(flag){
        count++'
        System.out.println("总共有"+count+"个素数"+"依次为"+x);
        }
    }
}

题目三:数组的常用排序算法

1、冒泡排序

Public class BubbleSort(){
    public static void main(String args[]){
         int[] arr=int[]{23,12,56,63,1};
         BubbleSort sorter=new BubbleSort();
         sorter.sort(arr);//调用排序方法将数组排序
         showArray(arr);//输出冒泡排序后的数组元素
         
    }
    public void sort(int[] arr){
        for(int x=1;x<arr.length;x++){
            //比较相邻的两个数,较大的往后冒泡
            for(int y=0;y<arr.length-x;y++){
                if(arr[y]>arr[y+1]){
                    int temp=arr[y];//把第一个元素保存到临时变量中
                    arr[y]=arr[y+1];//把第二个元素保存到第一个元素中
                    arr[y+1]=temp;//把临时变量保存到第二个元素中
                }
            }
        }
    }
    public void showArray(int[] arr){
        for(int i:arr){
            System.out.print(i+",");
        }
        System.out.println();
    }
}











你可能感兴趣的:(Java常见算法编程题)