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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL Server实现某书店图书进货、销售管理系统[通俗易懂]

    SQL Server实现某书店图书进货、销售管理系统[通俗易懂]  文末附带数据库文件及数据库日志文件地址。 一.需求分析1、背景(1)待开发的系统名称:图书进货、销售管理系统(2)开发者:FriggaAZ(3)用户:书店管理人员(4)开发环境:① 操作系统:Windows10专业版Build17682② 数据库:SQLServer2017Developer2、系统总体功能分析需求(1)…

    2022年5月6日
  • TransactionScope Troubleshooting[通俗易懂]

    TransactionScope Troubleshooting[通俗易懂]只要涉及到数据库的操作,那么使用事务就是难免的。如果我们使用LINQtoSQL作为数据访问层,那么LINQ提供的SubmitChanges()方法自身就包含了对事务的处理。当然,我们也可以利用System.Data.Common.DbTransaction对事务进行处理,我们可以调用DataContext中Connection的方法BeginTransaction()启动事务,然后根据情况进行

    2022年7月19日
  • Pycharm和Anaconda的python版本问题

    Pycharm和Anaconda的python版本问题问题描述:Pycharm需要导入tensorflow库,但现在的python版本为3.8,不支持导入。于是想办法在Anaconda新建python3.6环境,之后再用于Pycharm开发。1.anaconda创建新的python版本环境2.找到新建python3.6的文件位置,点击python36切换时会显示位置:3.pycharm里新建环境,以第二步的python3.6环境为基础环境:导包时可能会出现问题:zeroexitcode(2)这是因为pip版本问题,使用

    2022年8月28日
  • Visual Studio中C++关于Unicode字符集和多字节字符集

    Visual Studio中C++关于Unicode字符集和多字节字符集1.Unicode字符集  原本标准字符集为8位的ASCII码,但世界上的书写语言不能简单地用256个8位代码即一字节表示,就试更宽的值,例如16位值。这就是Unicode非常简单的原理。与混乱的256字符代码映射,以及含有一些单字节代码和一些双字节代码的双字节字符集不同,Unicode是统一的16位系统,这样就允许表示65536个字符。在这里会高兴地告诉你前128个Unicode字符(1

    2022年10月26日
  • arcgis最佳路径分析步骤_基于arcgis的住房选址分析

    arcgis最佳路径分析步骤_基于arcgis的住房选址分析使用ArcGISNetworkAnalyst模块进行最佳路径分析,可以根据不同的需求,进行相关设置,得到不同意义的最佳路径。例如,省汽油;省驾驶时间;省等待时间;交叉路口最少;自驾旅游可以规划沿途风景最好的路径等等。

    2022年8月24日
  • vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object

    vue常见错误:Invalid prop: type check failed for prop “data“. Expected Array, got Object错误截图错误分析这个错误的意思是说:无效的命名数据:“数据”类型检查失败。期望数组,得到对象,那么我们这个时候很明白了,是类型不对,但是是哪一行的呢?打开错误信息下面的详情,这个时候找到后缀是自己页面的.vue文件,看看是哪一行,就知道问题在哪了!下面的是我的:warn @ vue.esm.js?efeb:610assertProp @ vue.esm.js?efeb:1691vali…

    2022年6月11日

发表回复

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

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