最近跟着队友也学起了java 自己一边查书一边百度一边写点入门程序 一边写一边做笔记 完全是从零开始 大神勿喷
持续更新中————
1.输入输出小程序(a+b)
package java入门;//包名 java入门
import java.util.Scanner;//导入Scanner 有了这一句才能使用Scanner输入数据
public class java1 {//类名为java1
public static void main(String[] args){//主方法
Scanner in=new Scanner(System.in);//必须要有这个函数才能进行输入 这里的in决定了下面
int p,q;
p=in.nextInt();//输入函数,通过这个函数读取输入的整数,这里的in与Scanner函数对应
q=in.nextInt();
System.out.println(p);//print和printf都是输出数据就结束了,而println是输出一个数加换行
System.out.println(q);
System.out.println(p+q);//感觉java这里的加号有点麻烦
}
}
System.out.println()目前的发现
括号里输出字符串和字符后面可以加a(char a=‘\n’)来进行换行,但是数字后面加a不会换行 而是数字增大了10.
2.数组的创立及输出输出
一维数组
package java入门;//包名 java入门
import java.util.Scanner;//导入Scanner
public class java1 {//类名为java1
public static void main(String[] args){//主方法
Scanner in=new Scanner(System.in);
int p,q;
p=in.nextInt();//输入函数
int a[]=new int[p];//创立的时候与c++不同的地方必须要这样开数组
for(int i=0;i<p;i++)//输入输出与与c++相差无几
{
a[i]=in.nextInt();
}
for(int i=0;i<p;i++)
{
System.out.println(a[i]);
}
}
}
二位数组与一维数组的相似 int a[][]=new int [p][p]
3.java大数a+b
package java入门;
import java.util.Scanner;
import java.math.BigInteger;//多了一个相当于头文件的语句
public class java1 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
BigInteger a=in.nextBigInteger();
BigInteger b=in.nextBigInteger();
BigInteger c=new BigInteger("0");
c=a.add(b);//这里用了加法函数
System.out.println(c);
}
}
拿着上面的代码去交hdu的第一道题错了 因为这个代码只能计算一次数据 没法持续输入然后持续计算 求教了队友老郭 才a掉
ac代码:
package java入门;
import java.util.Scanner;
import java.math.BigInteger;
public class Main { //向oj交题时这个地方的包名只能是Main 别的包名都会ce
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()) //神奇的代码 有了这个whil循环才能让程序持续的运行
{
BigInteger a=in.nextBigInteger();
BigInteger b=in.nextBigInteger();
BigInteger c=new BigInteger("0");
c=a.add(b);
System.out.println(c);
}
}
}
4.今天晚上去vju上做了几水题 加深了一下对java的理解
上题目-----
A - 大菲波数
f(1)=f(2)=1
f(n)=f(n-1)+f(n-2) n>=3。
计算第n项Fibonacci数值。
5 1 2 3 4 5
1 1 2 3 5
ac代码:
B - A + B Problem II
2 1 2 112233445566778899 998877665544332211
Case 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
BigInteger a, b;
int T;
Scanner in = new Scanner(System.in);
T = in.nextInt();
for (int i = 1; i <= T; ++i) {
System.out.println("Case" + " " + i + ":");
a = in.nextBigInteger();
b = in.nextBigInteger();
if (i < T) {//这个地方注意分类 最后一个case输出就不在输出空行了 而前面的都要多输出一个空行 以前在hdu上错了好几次都是因为这个
System.out.println(a + " + " + b + " = " + a.add(b) );
System.out.println();
} else {
System.out.println(a + " + " + b + " = " + a.add(b));
}
}
}
}
D - 大明A+B(大小数的a+b)
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
1.1 2.9 1.1111111111 2.3444323343 1 1.1
4 3.4555434454
2.1
import java.math.BigDecimal; //多了一个import语句 开大小数的 不过有简便方法 math.*可以代替所有的math.……
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
while(input.hasNext())
{
BigDecimal a=input.nextBigDecimal(); //定义和输出和大整数没啥区别
BigDecimal b=input.nextBigDecimal();
BigDecimal c=a.add(b);
String str=c.stripTrailingZeros().toPlainString();
System.out.println(str);
}
}
}