中小学课java_Java课程作业01

1.阶乘

import java.math.BigInteger;

import java.util.Scanner;

public class CalculateN {

/**

* @param args

*/

public static void main(String[] args) {

System.out.print("请输入N:");

Scanner scanner=new Scanner(System.in);

int number=scanner.nextInt();

System.out.println(number+"!="+calculateN2(number));

}

public static long calculateN(int n) {

if(n==1 || n==0){

return 1;

}

return n*calculateN(n-1);

}

public static BigInteger calculateN2(int n) {

if(n==1 || n==0){

return BigInteger.valueOf(1);

}

return BigInteger.valueOf(n).multiply(calculateN2((n-1)));

}

}

24da5439920f7b24d50cfb68755e308d.png

2.平方数的静方法

public class SquareInt {

public static void main(String[] args) {

int result;

for (int x = 1; x <= 10; x++) {

result = square(x);

// Math库中也提供了求平方数的方法

// result=(int)Math.pow(x,2);

System.out.println("The square of " + x + " is " + result + "\n");

}

}

// 自定义求平方数的静态方法

public static int square(int y) {

return y * y;

}

}

8cb301a98137513ba357110772c8e9b0.png

3.随机数生产

import javax.swing.JOptionPane;

public class RandomInt {

public static void main( String args[] )

{

int value;

String output = "";

for ( int i = 1; i <= 20; i++ ) {

value = 1 + (int) ( Math.random() * 6 );

output += value + " ";

if ( i % 5 == 0 )

output += "\n";

}

JOptionPane.showMessageDialog( null, output,

"20 Random Numbers from 1 to 6",

JOptionPane.INFORMATION_MESSAGE );

System.exit( 0 );

}

}

561665440f4f242a06f6fa0aee716c13.png

4.使用random类生产随机数

import java.util.Random;

public class TestSeed

{

public static void main(String[] args)

{

Random r1 = new Random(50);

System.out.println("第一个种子为50的Random对象");

System.out.println("r1.nextBoolean():\t" + r1.nextBoolean());

System.out.println("r1.nextInt():\t\t" + r1.nextInt());

System.out.println("r1.nextDouble():\t" + r1.nextDouble());

System.out.println("r1.nextGaussian():\t" + r1.nextGaussian());

System.out.println("---------------------------");

Random r2 = new Random(50);

System.out.println("第二个种子为50的Random对象");

System.out.println("r2.nextBoolean():\t" + r2.nextBoolean());

System.out.println("r2.nextInt():\t\t" + r2.nextInt());

System.out.println("r2.nextDouble():\t" + r2.nextDouble());

System.out.println("r2.nextGaussian():\t" + r2.nextGaussian());

System.out.println("---------------------------");

Random r3 = new Random(100);

System.out.println("种子为100的Random对象");

System.out.println("r3.nextBoolean():\t" + r3.nextBoolean());

System.out.println("r3.nextInt():\t\t" + r3.nextInt());

System.out.println("r3.nextDouble():\t" + r3.nextDouble());

System.out.println("r3.nextGaussian():\t" + r3.nextGaussian());

Random r4 = new Random(System.currentTimeMillis());

System.out.println("以当前时间为种子的Random对象");

System.out.println("r3.nextBoolean():\t" + r4.nextBoolean());

System.out.println("r3.nextInt():\t\t" + r4.nextInt());

System.out.println("r3.nextDouble():\t" + r4.nextDouble());

System.out.println("r3.nextGaussian():\t" + r4.nextGaussian());

}}

15a8e8df82363ec01387e0041078f095.png

5.重载

public class MethodOverload {

public static void main(String[] args) {

System.out.println("The square of integer 7 is " + square(7));

System.out.println("\nThe square of double 7.5 is " + square(7.5));

}

public static int square(int x) {

return x * x;

}

public static double square(double y) {

return y * y;

}

}

893e5e3c19e7e45411da97795c8ec225.png

6.CalculateN示例程序中的BUG

import java.math.BigInteger;

import java.util.Scanner;

public class CalculateN {

/**

* @param args

*/

public static void main(String[] args) {

System.out.print("请输入N:");

Scanner scanner=new Scanner(System.in);

int number=scanner.nextInt();

System.out.println(number+"!="+calculateN2(number));

}

public static long calculateN(int n) {

if(n==1 || n==0){

return 1;

}

return n*calculateN(n-1);

}

public static BigInteger calculateN2(int n) {

if(n==1 || n==0){

return BigInteger.valueOf(1);

}

return BigInteger.valueOf(n).multiply(calculateN2((n-1)));

}

}

由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。

7.比较两个浮点数

double i = 0.0001;

double j = 0.00010000000000000001;

System.out.println(i==j); //输出:true

计算机不能精确地表达浮点数(特殊形式的除外),因此,当需要比较两个浮点数是否相等时,应该比较其差的绝对值是否在某个允许范围之内即可。

if ( Math.Abs(i - j) < 1e-10 )

System.out.println("true");

else

System.out.println("false");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值