几个简单的java小程序,求教更简单的方法!

雪域迷影 雪域迷影 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
以下是我学习java时老师布置的实验报告,
我自己全都做完了,想看看大家的做法,
有没有更简便的,忘大家对我的代码指教一二,
谈谈自己的看法,贴贴自己写的更优的代码,谢谢了!

1.编写Java程序,利用下面这个公式,计算出π的近似值,要求误差小于1e-8。
π/4=1-1/3+1/5-1/7+...
提示:关于数学方法参考api文档的Math类。

//PI.java
public class PI{
public static void main(String [] args){

final double eps =0.00000001,MAX = 100000000;
double result = 0, result1 = 0;
int i = 1; //i表示第几项
do{

result = result1;//用result保存当前计算的PI值

result1 += Math.pow(-1,i+1) /(double)(2*i-1); //将每项和累加result中
//更新PI值
i++;

}while(Math.abs(result1 - result) > eps && i <= MAX); //控制精度在eps之内

System.out.println( "PI的值为:PI = " + 4 * result);
}


}



2.写一个会随机生成25个范围在0~99之间的整型值的程序,对每一个值,用if-else if-else语句判断其大于、小于还是等于上一个随机生成的值。
提示:随机方法参考api文档的Math类。关于输出格式见下图:

//Random.java
import java.util.*;
public class Random{

public static void main(String args[]){
int[] RInt = new int[25]; //为整型数组对象分配内存空间
Random randomInts = new Random();

for(int i = 0; i < 25; i++){
//RInt[i] = (int)(99 * Math.random());
RInt[i] = randomInts.nextInt(100);
//System.out.println("第" + (i+1) + "随机数是:" + RInt[i]);
if(i == 0){ //第一个随机整数直接输出,之前没有整数
System.out.println("第1次" + RInt[i] );
}
else{ //判断第(i+1)个整数与第i个整数的大小关系
if(RInt[i] < RInt[i-1]){
System.out.println("第" + (i+1) + "次" + RInt[i] + " < " + RInt[i-1] );
}
else if(RInt[i] > RInt[i-1]){
System.out.println("第" + (i+1) + "次" + RInt[i] + " > " + RInt[i-1] );
}
else{
System.out.println("第" + (i+1) + "次" + RInt[i-1] + " == " + RInt[i] );
}
}

}




}




}




3.输出101到200以内的所有质数(素数)。
//Primer.java

public class Primer{


public static void main(String args[]){


for(int i = 101; i <= 200; i++){ //第一个for循环控制i数的范围
for(int j = 2; j <= Math.floor(Math.sqrt(i)) ; j++){ //第二个for循环判断i是否为素数
if(i % j ==0){
//System.out.println(i + "不是素数!");
break;
}
if ( j == Math.floor(Math.sqrt(i)))
System.out.println(i + "是素数!");

}



}





}




}


4.编写方法,实现矩阵相加、相乘的功能。
其中矩阵相加的方法可以声明成:
public static int [][] add(int [][] a, int [][] b)
矩阵相乘的方法可以声明为:
public static int [][] mul(int [][] a, int [][] b)

最后编写main方法,构造几组适当的矩阵数据,测试上面两个方法。
// MatrixCalculate.java

public class MatrixCalculate{

public static int [][] add(int [][] a, int [][] b){ //实现矩阵加法运算的方法


int c[][] = new int[a.length][a[0].length];
for(int i = 0 ; i< a.length ; i++)
for(int j = 0 ; j < a[0].length ; j++){

c[i][j] = a[i][j] + b[i][j];

}
return c;


}

public static int [][] mul(int [][] a, int [][] b){ //实现矩阵乘法的方法
int c[][] = new int[a.length][b[0].length];


for(int i = 0 ; i< a.length ; i++)
for(int j = 0 ; j < a[0].length ; j++){
for(int k = 0 ; k < a[0].length ; k++)
c[i][j] += a[i][k] * b[k][j] ;

}
return c;


}

public static void main(String [] args){

int a[][] = { {1,0,0}, {0,1,0} , {0,0,1} };
int b[][] = { {1,1,1}, {2,2,2} , {3,3,3} };

int AddResult[][] = new int[3][];
int MulResult[][] = new int[3][];
AddResult = add(a,b);
MulResult = mul(a,b);
System.out.println("*********实现矩阵加法**********");
for(int i = 0 ; i< a.length ; i++)
for(int j = 0 ; j < a[0].length ; j++){

System.out.println("AddResult[" + i +"]" + "[" + j +"] = " + AddResult[i][j] );


}

System.out.println("*********实现矩阵乘法************");
for(int i = 0 ; i< a.length ; i++)
for(int j = 0 ; j < b[0].length ; j++){

System.out.println("MulResult[" + i +"]" + "[" + j +"] = " + MulResult[i][j] );


}







}





}


5.实现一个排序算法(任选一种)。
方法声明如下:
public static void sort(int [] a)
编写main方法,测试你的排序算法。
//BubbleSort.java

public class BubbleSort{

public static void sort(int [] a){
for(int i = 0 ; i< a.length - 1 ; i++){
for(int j = i + 1 ; j < a.length ; j++){
if(a[i] > a[j]){
int temp = a[i] ;
a[i] = a[j] ;
a[j] = temp ;

}


}


}

}

public static void main(String [] args){
int [] a ={10,20,25,9,15,30,5,8,16,19} ;
sort(a);
for(int i = 0; i < a.length ; i++){
System.out.println("The sorted Number Array is: " + a[i] );

}


}




}


6.实现二分搜索算法。
方法声明如下:
public static int binSearch(int [] a, int key)
其中如在数组a中找到key值,返回相应的下标值,若找不到,则返回-1。
编写main方法,构造适当的有序数组,测试该方法。
//BinarySearch.java

public class BinarySearch{

public static int binSearch(int [] a, int key){
int left = 0;
int right = a.length - 1;
int middle ;
while(left <= right){

middle = (left + right) / 2;
if(a[middle] == key){

return middle;
}
else if(key < a[middle]){

right = middle ;
}
else{

left = middle ;

}


}

return -1;

}

public static void main(String [] args){

int [] a = new int[10];
for(int i =0 ; i < 10 ; i++){
a[i] = i + 10;

}
System.out.println(binSearch(a,13));

}





}
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
雪域迷影
J2ME 13,096 成员 26,491 内容