所花时间:15个小时左右(很大一部分时间花在了数组2的问题上)
代码量:400行左右(很少)大部分时间花在看代码,查知识点上。
博客量:两篇
这周通过数组的问题学了很多知识,列举如下:
1.类型转换问题
1.)int -> String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?
2.) String -> int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
2.判断是否输入为纯数字
Scanner input = new Scanner(System.in);
if(input.hasNextInt()){
int num = input.nextInt();
System.out.println(num);
}/*
hasNextInt()方法是判断控制台接收是否为数字,
当你在控制台输入一个字符的时候,hasNextInt()判断你输入这个字符是不是数字,
而不是接收值,当if判断通过之后执行接收,也就是你输入的那个字符,*/
else{ System.out.println("请输入正确数字!~"); } }
3.大整数问题
int ran = (int)(Math.random()*10000000) - (int)(Math.random()*100000000);
BigInteger a = new BigInteger(String.valueOf(ran));
1.赋值:
BigInteger a=new BigInteger("1");
BigInteger b=BigInteger.valueOf(1);
2.运算:
① add(); 大整数相加
BigInteger a=new BigInteger(“23”);
BigInteger b=new BigInteger(“34”);
a. add(b);
15.BigInteger构造函数:
一般用到以下两种:
BigInteger(String val);
将指定字符串转换为十进制表示形式;
BigInteger(String val,int radix);
将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger
4.随机数问题
-
math.random()*100
是指让系统随机选取大于等于 0.0 且小于 100.0 的伪随机数。
解释分析如下:
1、函数:Math.random();
2、功能:产生大于等于 0 小于 1 的一个随机数;
3、公式:Math.random()*(n-m)+m,生成大于等于m小于n的随机数;
例:设置一个随机1到3(取不到3)的变量
int num = (int)(Math.random()*2+1);
-
首先明确Math.pow(x,y)的作用就是计算x的y次方,其计算后是浮点数,这里先看一个例子
例2:Math.pow(x,y)这个函数是求x的y次方,x,y的值都是浮点类型的,pow(64,1/3),64的1/3次方,如果口头上来算的话,可以看成64的3次方根,但是计算机不会这样算,他会先求出1/3的值,1/3中1和3均为int类型,所以值为0,然后y这个值是浮点类型,所以自动转换为0.0,任何数字的0次幂都为1,所有这个地方求出来的值为1,而不是4