kk Blog —— 通用基础

date [-d @int|str] [+%s|"+%F %T"]

Java 基本

1. 最简单 Java 程序 // a+b

1
2
3
4
5
6
7
8
9
10
import java.util.*;

public class Main {
	public static void main(String[] args) {
	Scanner cin = new Scanner ( System.in );
	int a,b;
	a=cin.nextInt(); b=cin.nextInt();
	System.out.println(a+b);
	}
}

当输入有多组数据时,可以改成

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner ( System.in );
		int a,b;
		while(cin.hasNext())
		{
			a=cin.nextInt(); b=cin.nextInt();
			System.out.println(a+b);
		}
	}
}

2. Java 浮点

定义 double f;
输入 f=cin.f=cin.nextDouble();
输出 System.out.println(f);
也可以指定小数位数 System.out.printf(“%0.2f\n”, f);
注意 System.out.printf(“%0.2f\n”, f); 中用 “\n” 在 HDU 中提交会 PE ,但在 PKU 中不会

3. Java 数组

与 C/C++ 不同之处在于定义
Java定义格式
int a[]=new int[111]; 或者 int a[]; a=new int[111];
二维 int a[][]=new int[111][111];
其他基本与 C/C++ 一样

4. Java 字符串,字符数组

字符串定义 String ss;
输入 ss=cin.next(); ss=cin.nextLine();
ss=cin.next(); 相当于 C/C++ scanf(“%s”,ss);
ss=cin.nextLine(); 相当于 C/C++ gets(ss);
字符串不能改变其中某个字符
得到第 k 个字符 c=ss.charAt(k-1);

字符数组定义 char ch[]=new char[111];
因为字符串无法改变其中某个字符,所以可以将其转换成字符数组
即 ch=ss.toCharArray(); 剩下的又和 C/C++ 没多少差别了

Java 中的 StringBuffer 和String 差不多
但 StringBuffer 可以动态改变,支持删除,插入等操作

5 .Java 大整数,大浮点数

Java 大整数,大浮点数可以表示一个很大很大的数,省去手写高进度的麻烦
要用Java 大整数,大浮点数必须先将 math 导入,即加一句 import java.math.*;
大整数 BigInteger
大浮点数 BigDecimal
定义 BigInteger bd; BigDecimal bf;
把 int 转换成 BigInteger 格式 bd=BigInteger.valueOf(a);

大数之间的加减乘除 取模

1
2
3
4
5
6
加  BigInteger add(BigInteger other)        
减   BigInteger subtract(BigInteger other)
乘   BigInteger multiply(BigInteger other)
除   BigInteger divide(BigInteger other)
取模 BigInteger mod(BigInteger other)
例如 bd=bd.add(cd);   // bd=bd+cd;

大小比较

1
2
3
int compareTo(BigInteger other)
例如 k=bd.compareTo(cd);
k >0 时 bd>cd

计算 2333

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;
import java.math.*;

public class Main {
	public static void main(String[] args) {
	Scanner cin = new Scanner ( System.in );
	BigInteger bd,cd;
	int i,j;
	bd=BigInteger.valueOf(1);
	for(i=1;i<=333;i++)bd=bd.multiply(BigInteger.valueOf(2));
	System.out.println(bd);
	}
}

输出:17498005798264095394980017816940970922825355447145699491406164851279623993595007385788105416184430592