Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

1001 为什么老是不能AC?!

Posted by bluelaster at 2009-12-13 20:57:57
import java.math.BigDecimal;
import java.util.Scanner;

/**
 * @author ZhiJunZhang
 * @category 1001
 * @version use DigDecimal
 * @date 2009-12-01
 */
public class Main{

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String str = scan.next();
		String result = new String();
		int n = scan.nextInt();
		result = calculate(str, n);
		System.out.println(trimZero(result));
	}

	public static String calculate(String str, int n) {
		BigDecimal big = new BigDecimal(str);
		BigDecimal result = new BigDecimal("1");
		for (int i = 1; i <= n; i++) {
			result = result.multiply(big);
		}
		return result.stripTrailingZeros().toPlainString();
	}
	
	public static String trimZero(String str) {
		String result = new String();
		char[] strArr = str.toCharArray();
		int length = strArr.length;
		int point = str.indexOf(".");
		int p = point == -1 ? length : point;

		int leftZeroNum = 0;
		int rightZeroNum = 0;

		// 小数
		if (p != length || p != length - 1) {
			if (p != 0) {
				// trim left
				for (int i = 0; i <= p; i++) {
					char currBit = strArr[i];
					if (currBit == '0') {
						leftZeroNum++;
					} else {
						break;
					}

				}
			}
			// trim right
			for (int j = length - 1; j >= p; j--) {
				char currBit = strArr[j];
				if (currBit == '0') {
					rightZeroNum++;
				} else if (currBit == '.') {
					rightZeroNum++;
					break;
				} else {
					break;
				}
			}

			result = new String(strArr, leftZeroNum, length
					- (rightZeroNum + leftZeroNum));
		}
		// 整数
		else {
			int pos = str.indexOf(".");
			result = new String(strArr, 0, pos);
		}

		return result;
	}

}


Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator