题目一:
古典问题:有一对兔子,从出生后每三个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总共有多少对?
程序分析:每个月的兔子总对数依次为: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();
}
}