1001

本文介绍了一个Java程序,该程序使用BigDecimal类进行大数的幂运算,并格式化输出结果,确保输出的小数点前后均不包含多余的零。文章通过具体代码示例展示了如何读取用户输入并进行相应的大数运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仿人的,很奇怪1、2、3一处也不能少,但没找着少了之后结果会不同的测试数据

 

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		new Main();
	}

	public Main() {
		Scanner s = new Scanner(System.in);
		while (true) {
			BigDecimal n = s.nextBigDecimal();
			int m = s.nextInt();

			char[] c = n.pow(m).toPlainString().toCharArray();
			int begin = 0;
			int end = c.length - 1;

			while (c[begin] == '0') {//1
				begin++;
			}
			while (c[end] == '0') {//2
				end--;
			}
			if (c[end] == '.') {//3
				end--;
			}
			for (; begin <= end; begin++) {
				System.out.print(c[begin]);
			}
			System.out.println();
		}
	}
}

 http://blog.knowsky.com/197659.htm

 

下面的是我未通过的程序

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {

	BigDecimal d = new BigDecimal(10000);

	public static void main(String[] args) {
		new Main();
	}

	public Main() {
		Scanner s = new Scanner(System.in);
		while (s.hasNextFloat()) {
			float n = s.nextFloat();
			int m = s.nextInt();
			System.out.println(exec((int) (n * 10000), m));
		}
		s.close();
	}

	public String exec(int a, int b) {
		String result = new BigDecimal(a).pow(b).divide(d.pow(b)).toPlainString();
		if (result.startsWith("0.")) {
			return result.substring(1);
		}
		return result;
	}
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值