之前就学过一点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);
}
}
}
之后继续更新