之前就学过一点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+bans_sub = a.subtract(b); //a-bans_mul = a.multiply(b); //a*bans_div = a.divide(b); //a/bans_mod = a.mod(b); //a%bx=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("相等");elseSystem.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);}}
}
之后继续更新