之前就学过一点java,但太久没用知识点早就还给书本,之前在实验室搞到一本java的书,今天来重新温习一下
java的语法大部分和c++语言是一样的,入门非常快,所以在这里基础语句的用法就省略了
输出:
System.out.println() 输出信息后追加一个换行 System.out.print()输出之后不追加换行
string:
str.IndexOf()//返回搜索的字符或字符串首次出现的位置 str.lastIndexOf()//返回搜索的字符或字符串最后一次的位置 charAt()//可将指定索引处的字符返回 trim()//返回字符串的副本,忽略前导空格和尾部空格 startsWith()//判断当前字符串对象的前缀是否为参数指定的字符串 endWith()//判断当前字符串是否为以给定的子字符串结束 toLowerCase()//把所有字符从大写字母改成小写字母 toUpperCase()//把所有字符从小写字母改成大写字母
java大数运算
在java中有个BigInteger类型,支持任意精度的整数,也就是说在运算中BigInteger类型可以准确地表示任何大小的整数值而不会丢失任何数据
public BigInteger add(BigInteger val)//做加法运算 public BigInteger subtract(BigInteger val)//做减法运算 public BigInteger multiply(BigInteger val)//做乘法运算 public BigInteger divide(BigInteger val)//做除法运算 public BigInteger remainder(BigInteger val)//做取余运算 public BigInteger negate(BigInteger val)//取相反数
BIgDecimal加入了小数的概念,支持任何精度的定点数,可以用它来精确计算货币值
public BigDecimal add(BigDecimal augend):做加法操作 subtract()做减法操作 multiply()做乘法操作 divide()做除法操作
大数阶乘:
import java.math.BigDecimal; import java.util.Scanner; public class Main{ public static BigDecimal factorial(BigDecimal n){ BigDecimal bd1 = new BigDecimal(1);//BigDecimal类型的1 BigDecimal bd2 = new BigDecimal(2);//BigDecimal类型的2 BigDecimal result = bd1;//结果集,初值取1 while(n.compareTo(bd1) > 0){//参数大于1,进入循环 result = result.multiply(n.multiply(n.subtract(bd1)));//实现result*(n*(n-1)) n = n.subtract(bd2);//n-2后继续 } return result; } public static void main(String[] args){ System.out.println("请输入阶乘数:"); Scanner sc = new Scanner(System.in); BigDecimal n = sc.nextBigDecimal(); sc.close(); System.out.print(n + "!=" + factorial(n)); } }
/* 大数的加减运算不同于普通整数的加减乘除运算 加—— a+b: a=a.add(b); 减—— a-b: a=a.subtract(b); 乘—— a*b: a=a.multiply(b); 除—— a/b: a=a.divide(b); 求余—a%b: a=a.mod(b); 转换—a=b: b=BigInteger.valueOf(a); 比较 if (ans.compareTo(x) == 0)//比较 System.out.println("相等"); System.out.println("a + b = "+ans_add); // 这里的‘+’ (第二个) 是连接的意思 */ package wkf; import java.util.*; import java.math.*; public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger a,b,x,y; BigInteger ans_add,ans_sub,ans_mul,ans_div,ans_mod; a=cin.nextBigInteger(); b=cin.nextBigInteger(); ans_add = a.add(b); //a+b ans_sub = a.subtract(b); //a-b ans_mul = a.multiply(b); //a*b ans_div = a.divide(b); //a/b ans_mod = a.mod(b); //a%b x=BigInteger.valueOf(1);//转换 System.out.println("a + b = "+ans_add); System.out.println("a - b = "+ans_sub); System.out.println("a * b = "+ans_mul); System.out.println("a / b = "+ans_div); System.out.println("a % b = " + ans_mod); System.out.println(x); if (a.compareTo(b) == 0)//比较 System.out.println("相等"); else System.out.println("不相等"); } }
大数加法:
import java.math.BigInteger; import java.util.*; import java.io.*; public class Main { public static void main(String args[]) { Scanner in = new Scanner(System.in); int n = in.nextInt(); for(int i = 1; i <= n; ++i) { BigInteger a = in.nextBigInteger(); BigInteger b = in.nextBigInteger(); BigInteger ans = a.add(b); System.out.println("Case " + i + ":"); System.out.println(a + " + " + b + " = " +ans); } } }
之后继续更新