几个简单的java小程序,求教更简单的方法!
以下是我学习java时老师布置的实验报告,
我自己全都做完了,想看看大家的做法,
有没有更简便的,忘大家对我的代码指教一二,
谈谈自己的看法,贴贴自己写的更优的代码,谢谢了!
1.编写Java程序,利用下面这个公式,计算出π的近似值,要求误差小于1e-8。
π/4=1-1/3+1/5-1/7+...
提示:关于数学方法参考api文档的Math类。
2.写一个会随机生成25个范围在0~99之间的整型值的程序,对每一个值,用if-else if-else语句判断其大于、小于还是等于上一个随机生成的值。
提示:随机方法参考api文档的Math类。关于输出格式见下图:
3.输出101到200以内的所有质数(素数)。
//Primer.java
4.编写方法,实现矩阵相加、相乘的功能。
其中矩阵相加的方法可以声明成:
public static int [][] add(int [][] a, int [][] b)
矩阵相乘的方法可以声明为:
public static int [][] mul(int [][] a, int [][] b)
最后编写main方法,构造几组适当的矩阵数据,测试上面两个方法。
// MatrixCalculate.java
5.实现一个排序算法(任选一种)。
方法声明如下:
public static void sort(int [] a)
编写main方法,测试你的排序算法。
//BubbleSort.java
6.实现二分搜索算法。
方法声明如下:
public static int binSearch(int [] a, int key)
其中如在数组a中找到key值,返回相应的下标值,若找不到,则返回-1。
编写main方法,构造适当的有序数组,测试该方法。
//BinarySearch.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));
}
}
...全文
相关推荐
几个简单的java小程序
几个简单的java小程序,有测试题和详细的答案
Discuz! 小程序开发实战指南
本文还有配套的精品资源,点击获取 简介:Discuz! 小程序是一个能够通过微信、支付宝等平台访问论坛内容的轻应用。本文介绍了创建和配置Discuz! 小程序的开发过程,涵盖了必要的开发工具和语言、API接口集成、UI设计、数据同步、权限管理、性能优化、测试与发布以及运营维护等方面。开发者可按此指南,构建出用户体验良好且功能完整的论坛小程序。 1. Discuz!...
用Java编写的简单烟花小程序
Java简单烟花!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
java最简单的小程序
java的小程序,真的是非常简单的小程序,包括了java的基本结构,保证你看完不后悔
Java实现简单日历小程序 Java图形界面小日历开发
主要介绍了Java实现简单日历小程序,如何用Java swing开发一款简单的小日历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


J2ME
