阅读并运行示例PassArray.java,观察并分析程序输出的结果
小结:引用传递、如果方法中有代码则更改了数组元素的值,因为引用时传递的是地址。
阅读程序WhatDoesThisDo.java, 解释程序所完成的功能。 阅读程序WhatDoesThisDo2.java, 解释程序所完成的功能。
请编写一个程序将一个整数转换为汉字读法字符串。比如“1123”转换为“一千一百二十三”。
import java.util.*; public class Test_1 { public static void main(String args[]) { int n[] = {1,1,2,3}; String m[] = new String[4]; for(int i = 0; i < n.length ; i++) { if(n[i] == 1) { m[i] = "一"; } else if(n[i] == 2) { m[i] = "二"; } else { m[i] = "三"; } } System.out.print(m[0] + "千" + m[1] + "百" + m[2] + "十" + m[3]); } }
实验结果截图
直接使用数组表达大数完成大数计算
package wsd;
import java.util.Scanner;
import java.math.BigDecimal;
public class qqq {
public static void main(String[] args) {
// TODO Auto-generated method stub
int aa,bb;
System.out.println("用数组实现大数的加法和减法");
System.out.print("请输入大数a:");
Scanner scan=new Scanner(System.in);
String a=scan.next();
System.out.print("请输入大数b:");
String b=scan.next();
int A[]=new int[100];
int B[]=new int[100];
//用于复杂的乘法和除法
BigDecimal b1 = new BigDecimal(a) ;
BigDecimal b2 = new BigDecimal(b) ;
for(int i=0;i<a.length();i++){
A[i]=(int) ((a.charAt(i)-48)*Math.pow(10,a.length()-i-1));
}
for(int i=0;i<b.length();i++){
B[i]=(int) ((b.charAt(i)-48)*Math.pow(10,b.length()-i-1));
}
int sum=0;
int sub=0;
for(int i=0;i<a.length();i++){
sum+=A[i]+B[i];
sub+=A[i]-B[i];
}
System.out.print("a+b="+sum);
System.out.println();
System.out.print("a-b="+sub);
System.out.println();
System.out.print("a*b="+b1.multiply(b2));
System.out.println();
System.out.print("a/b="+b1.divideToIntegralValue(b2));
}
}
实验结果截图、
BigInteger的用法:
1.add(); 大整数相加
BigInteger a=new BigInteger(“23”)
BigInteger b=new BigInteger(“34”)
2.subtract(); 相减
3.multiply(); 相乘
4.divide(); 相除取整
5.remainder(); 取余
6.pow(); a.pow(b)=a^b
7.gcd(); 最大公约数
8.abs(); 绝对值
9.negate(); 取反数
10.mod(); a.mod(b)=a%b=a.remainder(b);
11.max(); min();
12.punlic int comareTo();
13.boolean equals(); 是否相等
随机生成10个数,填充一个数组,然后用消息框显示数组内容,接着计算数组元素的和,将结果也显示在消息框中。
package wsd; import javax.swing.JOptionPane; import javax.swing.*; public class qqq { public static void main(String args[]){ String output= "10个1000以内的随机数为:\n"; int sum=0; int a []=new int [10]; for(int i = 0;i<10;i++) { a[i]=(int) (Math.random()*1000); output += " "+a[i]; sum += a[i]; } output +="\n\n十个数的和是:"+sum; JOptionPane.showMessageDialog(null,output,"结果",JOptionPane.PLAIN_MESSAGE); } }
实验结果截图、
程序流程图、