现在的位置: 首页 > 综合 > 正文

[Java]代码阅读记录

2018年03月17日 ⁄ 综合 ⁄ 共 1316字 ⁄ 字号 评论关闭
//poj 1001


import java.math.*;
import java.io.*;
import java.util.*;
import java.lang.*;
public class Main
{
	public static void main(String[] args)
	{
        Scanner cin=new Scanner(System.in);//初始化输入管道
        while(cin.hasNextBigDecimal())//持续读入

        {
            BigDecimal a = cin.nextBigDecimal();//读入一个大数
            a=a.pow(cin.nextInt()).stripTrailingZeros();//直接乘方,并同步去掉末尾的零
            String b=a.toPlainString();//转化为字符串
            if( b.substring(0,2).startsWith("0."))//修改纯小数的输出方法
                b=b.substring(1);//若为“0.xxx”,则从“.”开始截取剩下部分
            System.out.println(b);//带换行输出
        }
	}

}

//hoj 1368
import java.util.*;
import java.math.*;
public class Main {
	public static void main(String[] args) {
		BigDecimal a,b,ans;
		int c;
		String op;//op is String,not char
		Scanner cin =new Scanner(System.in);	
		while(cin.hasNextBigDecimal())
		{
			a=cin.nextBigDecimal();
			op=cin.next();//String read by next,it seems that blanks before and after will be ignored
			b=cin.nextBigDecimal();
			if(op.equals("+"))//judge equal
				System.out.println(a.add(b));
			else if(op.equals("-"))
			{
				System.out.println(a.subtract(b));
			}
			else if(op.equals("*"))
			{
				System.out.println(a.multiply(b));
			}
			else if(op.equals("/"))
			{
				BigDecimal result[] = a.divideAndRemainder(b);//useful func;return an array
				System.out.print(result[0]  + " " + result[1]+" ");  //how to use print..
				c=cin.nextInt();
				ans=a.divide(b,c,BigDecimal.ROUND_HALF_UP);//divide()overloaded as (dividor,precision,round mode)
				System.out.println(ans.toPlainString());//why?toforbid exponent expression
			}
		}
	}
 
}




抱歉!评论已关闭.