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


相关推荐

  • php属于前端还是后端_php实时推送到前端

    php属于前端还是后端_php实时推送到前端功能说明使用第三方平台goeasy实现服务端向前端推送数据基本原理WebSocket使用准备申请goeasy账号并创建应用官网http://www.goeasy.io安装并开启goeasy插件(注意清除缓存)在插件配置中填写应用的Appkeys等配置项使用说明使用插件集成的事件插件在前台(index模块)和后台(admin模块)各集成了两个默认的事件订阅,可以在js中通过监听top来处理,例:也…

    2025年5月27日
    1
  • platform device和driver之间的关系

    platform device和driver之间的关系[c-sharp] viewplaincopy内核中的platform driver机制需要将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样可以提高驱动和资源管理的独立性。本文的目的就是希望弄清楚platform device和driver之间的关系。  1.1

    2022年7月24日
    5
  • Java笔试题大全(附带答案)「建议收藏」

    Java笔试题大全(附带答案)「建议收藏」一、单选题1.下列哪一种叙述是正确的(D)A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{}包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号2.如下代码publicclassTest{publicintaMethod(){staticinti=0;i++;returni;}…

    2022年7月7日
    21
  • 难得清静的生日– 记我的本命年

    难得清静的生日– 记我的本命年

    2021年7月22日
    65
  • java匿名对象_匿名对象概念和使用

    java匿名对象_匿名对象概念和使用在千峰“逆战”学习第14天Personperson=newPerson(“骚杰”,66,‘男’);Person类名person对象名newPerson(…)像内存的堆区申请空间,创建一个Person类对象使用的内存空间匿名对象没有名字的对象,没有对象名的对象格式:new构造方法(所需参数)用途1.提高开发效率,隐形眼镜日抛,一次性筷子匿名对象当前行使用…

    2022年9月6日
    1
  • HashMap数据结构图,实现原理的理解[通俗易懂]

    HashMap数据结构图,实现原理的理解[通俗易懂]

    2022年5月12日
    32

发表回复

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

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