今天第一次接触了JAVA,之前C和C++接触的比较多,写的代码中90%是面向过程,大概有5万行, 但还是觉得自己非常的菜
(I very vegetable !),学校发的JAVA课本第一眼就 没有让我心动的感觉,又是传智播客的书,实在无感(怪我啰),我打算根据POJ的简单题和博客题解来学校,遇到不会的知识点再专门学习,JAVA的细节打算上课听讲时听一听,有空再看看JAVA的面试题来巩固。这也算是学了C和C++后对学习新语言的一点小心得吧,Go Go Go, CCSGTC!
今天呢,我刷了Poj的1000和1001.
poj 1000, 简单的a + b, 让我知道了Scanner和System.out.println()的用法
package Poj;
//import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int numA = cin.nextInt(),numB = cin.nextInt();
System.out.println(numA + numB );
}
}
nextInt()表示接受一个整数;
import java.math.*; import java.util.* ,这个用来导入JAVA.math 和JAVA.util包里面的类
poj 1001,这个是求R^A,其中R是浮点数,n是正整数,还有两个要求:
(1):如果结果的尾部有多余的0,要把0去除掉。
(2):如果结果是0.000xxx的小数,也就是说要是结果小于1的话,应该把前导0给去掉,然后再输出。。
通过这道题,认识了JAVA的一个高精度大数类BigDecimal,给跪了,好牛逼的一个类,怪不得ACMer中高精度运算都用JAVA。
package Poj;
import java.util.*;
import java.math.*;
public class poj1001 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
BigDecimal numR;
int numA;
String Ans;
while(cin.hasNext() ){
numR = cin.nextBigDecimal();
numA = cin.nextInt();
numR = numR.pow(numA);
Ans = numR.stripTrailingZeros().toPlainString();
if( Ans.startsWith("0.") ) {
System.out.println( Ans.substring(1) );
}
else
System.out.println(Ans);
}
}
}
nextBigDecimal() 表示接收一个高精度的大数对象;
pow(A),表示一个大数进行自身的n次幂的运算。
stripTrailingZeros(), 表示对一个大数对象去掉多余的末尾0;
toPlainString(),表示将一个大数对象转化成String;
startsWith("xx"),表示判断一个String是否是以"xx"开头,是的话返回true。
hasNext()和Next()效果其实是一样的,系统都会等待输入下一个字符,只是返回值不同,hasNext()会返回true,next()返回输入的字符。
为了养成良好的代码规范,希望自己能够从一开始就严格按照下列规则写代码:
1.包名所有字母一律小写,例如cn. itcat.test。
2.类名和接口名每个单词的首个字母要大写, 例如BigDecimal。
3.常量名所有字母都要大写,单词之间用下划线连接,例如DAY_OF_MONTH。
4.变量名和方法名的第一个单词的首字母小写,从第二个单词开始每个单词的首字母都要大写。如startsWith();
5.在程序中应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。这点一定要改,之前确实是太不规范了。