HDU Exponentiation 1063 Java大数题解

HDU Exponentiation 1063 Java大数题解

大家好,又见面了,我是全栈君。

Exponentiation

Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6973    Accepted Submission(s): 1975




Problem Description
Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems. 

This problem requires that you write a program to compute the exact value of R
n where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25. 

 


Input
The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9.

 


Output
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don’t print the decimal point if the result is an integer.

 


Sample Input
   
   
95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12

 


Sample Output
   
   
548815620517731830194541.899025343415715973535967221869852721 .00000005148554641076956121994511276767154838481760200726351203835429763013462401 43992025569.928573701266488041146654993318703707511666295476720493953024 29448126.764121021618164430206909037173276672 90429072743629540498.107596019456651774561044010001 1.126825030131969720661201

大数的题目使用Java就变得其简单无比。

主要就一句代码:

String ans = a.pow(b).stripTrailingZeros().toPlainString();

去零和转换为纯字符串输出。

这使用C++要数十行代码。

对照C++解法:http://blog.csdn.net/kenden23/article/details/23997827

相比之下。java就成了水题了。学不到什么东西。

import java.math.BigDecimal;
import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext())
        {
            BigDecimal a = scan.nextBigDecimal();
            int b = scan.nextInt();
            String ans = a.pow(b).stripTrailingZeros().toPlainString();
            if (ans.startsWith("0")) ans = ans.substring(1);
            System.out.println(ans);
        }
        scan.close();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115938.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月28日 下午1:00
下一篇 2022年1月28日 下午1:00


相关推荐

  • 实测腾讯混元T1正式版.vs.DeepSeek.vs.Qwen2.5-Max,推理能力哪家强?

    实测腾讯混元T1正式版.vs.DeepSeek.vs.Qwen2.5-Max,推理能力哪家强?

    2026年3月12日
    2
  • 实验四linux操作系统实验报告(1),操作系统实验报告

    实验四linux操作系统实验报告(1),操作系统实验报告一 实验目的及实验环境 一 实验环境 Linux 操作系统 二 实验目的实验 1 掌握 Linux 基本命令和开发环境掌握常用的 Linuxshell 命令 掌握编辑环境 VIM 掌握编译环境 gcc 及跟踪调试工具 gdb 实验 2 进程通过观察 分析实验现象 深入理解进程及进程在调度执行和内存空间等方面的特点 掌握在 POSIX 规范中 fork 和 kill 系统调用的功能和使用 实验 3 线程通过观察 分析实验现象

    2026年3月19日
    2
  • acwing-372. 棋盘覆盖(二分图)

    acwing-372. 棋盘覆盖(二分图)给定一个 N 行 N 列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为 2、宽度为 1 的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数 N 和 t,其中 t 为禁止放置的格子的数量。接下来 t 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数,表示结果。数据范围1≤N≤100,0≤t≤100输出样例:8 0输出样例:32#include&l

    2022年8月10日
    13
  • 3.1 代价函数[通俗易懂]

    3.1 代价函数[通俗易懂]3.1代价函数(costfunction)    代价函数有助于将最可能的线性函数与我们的数据相拟合。在线性回归中,我们有一个这样的数据集,m表示训练集样本数,而我们的假设函数,也就是我们用来进行预测的函数,是图中所示的线性函数形式。    接下来,我们引入一些术语,Ɵ0和Ɵ1,这些Ɵi我们将它称作为模型参数,我们要做的就是如何去选择这两个参数。对于不同的Ɵ0和Ɵ1,我们会得到不同

    2022年4月30日
    50
  • 很好的理解遗传算法的样例

    很好的理解遗传算法的样例

    2021年12月10日
    39
  • E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法

    E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法E:Sub-process/usr/bin/dpkgreturnedanerrorcode(1)解决办法安装libapache2-svn出现了这个错误,是由于apt-get安装软件时出现了类似于:dpkg:errorprocessingpackagelibapache2-mod-svn(–configure):subprocessinstalledpost-i…

    2025年7月24日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号