logo资料库

JAVA实验报告 处理大整数.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
实验4 处理大整数
1.相关知识点 实验 4 处理大整数 程序有时需要处理大整数,java.math 包中的 BigInteger 类提供任意精度的 整数运算。可以使用构造方法: public BigInteger(Sring val) 构造一个十进制的 BigInteger 对象。该构造方法可以发生 NumberFormatException 异常,也就是说,字符串参数 val 中如果含有非数字字母 就会发生 NumberFormatException 异常。 2.实验目的 本实验的目的是让学生掌握 BigInteger 类的常用方法。 3.实验要求 编写一个 java 应用程序,计算 2 个大整数的和、差、积、商,并计算出一个 大整数的因子个数(因子中不包括 1 和大整数本身)。 4.运行效果示例 程序运行结果如图所示: 5.程序模板 //HandBigIntegerExample.java import java.math.*; class BigIntegerExample { public static void main(String args[]) { BigInteger n1 = new BigInteger("987654321987654321987654321"), n2 = new BigInteger("123456789123456789123456789"), result = null; result = n1.add(n2); System.out.println("和:" + result.toString()); result = n1.subtract(n2); System.out.println("差:" + result.toString());
result = n1.multiply(n2); System.out.println("积:" + result.toString()); result = n1.divide(n2); System.out.println("商:" + result.toString()); BigInteger m = new BigInteger("17637"), COUNT = new BigInteger("0"), ONE = new BigInteger("1"), TWO = new BigInteger("2"); System.out.println(m.toString() + "的因子有:"); for (BigInteger i = TWO;i.compareTo(m) < 0;i = i.add(ONE)) { if((m.remainder(i).compareTo(BigInteger.ZERO))==0) { COUNT = COUNT.add(ONE); System.out.print(" " + i.toString()); } } System.out.println(""); System.out.println(m.toString() + "一共有" + COUNT.toString() + "个因子"); } } 6.实验指导 只要计算机的内存足够大,就可以处理任意大的整数。BigInteger 类的 toString()方法返回当前大整数对象十进制的字符串表示。 7.实验后练习 (1)编写程序,计算大整数的阶乘。 //HandBigIntegerExample1.java import java.math.*; class BigIntegerExample1 { public static void main(String args[]) { BigInteger n1 = new BigInteger("50"); BigInteger n2 = new BigInteger("1"); BigInteger one = new BigInteger("1"); for(BigInteger i=one;i.compareTo(n1) <=0;i = i.add(one)) { n2=n2.multiply(i); } System.out.println(n1.toString() + "的阶乘为:" + n2.toString()); } } (2)编写程序,计算 1+2+3...的前 99999999 项的和。
//HandBigIntegerExample2.java import java.math.*; class BigIntegerExample2 { public static void main(String args[]) { BigInteger n1 = new BigInteger("99999999"); BigInteger n2 = new BigInteger("0"); BigInteger one = new BigInteger("1"); for(BigInteger i=one;i.compareTo(n1) <=0;i = i.add(one)) { n2=n2.add(i); } System.out.println("前" + n1.toString() + "项的和为:" + n2.toString()); } } 8.填写实验报告
分享到:
收藏