zoukankan      html  css  js  c++  java
  • poj 1001 Exponentiation

    1001 Exponentiation
      求R^n,R是一个实数,(0.0<R<99.999),n是一个整数,0<n<=25.
      输入格式:R会占据第1到6列,n会占据第8到9列。
      样例:
        input:
          95.123 12
          0.4321 20
          5.1234 15
          6.7592 9
          98.999 10
          1.0100 12
        output:
          548815620517731830194541.899025343415715973535967221869852721
          .00000005148554641076956121994511276767154838481760200726351203835429763013462401
          43992025569.928573701266488041146654993318703707511666295476720493953024
          29448126.764121021618164430206909037173276672
          90429072743629540498.107596019456651774561044010001
          1.126825030131969720661201
     
      思路:
        1.把R处理成一个整数,剔除小数点,并且记录小数点后面位数k。
        2.把整数转化为BigInt,进行n-1次乘法,k×=n。
        3.处理输出。

      1.
        利用stringstream把处理后的字符串R转化为int
      2.
        略
      3.
        这里是一个比较重点的部分,经常会出错。
        对于小数点后面的部分,最末尾的0是都要舍去的,小数点前面如果仅仅有一个0,也是需要舍去的。
        我的处理方法是,对最后得到的BigInt,先转化为一个字符串,然后:
          如果它=“0”,那么直接输出。
          如果它的末尾==0 并且 k!=0 那么不断截去末尾,并且k--
          完毕后,如果k=0,那么直接输出字符串
            如果字符串本来为0,那么很可能完成后字符串消失,所以需要对纯粹0的字符串进行特判。
          如果k!=0
            k比字符串的长度大,那么堆字符串前补0,之后输出“.”+字符串
            k比字符串的长度小,那么在合适的位置插入小数点。

  • 相关阅读:
    笑话几则
    .net 知识点滴
    LoadRunner本机录制http协议程序遇到的问题以及解决方法
    40款非常棒的 jQuery 插件和制作教程(系列二)
    50个极佳的企业网站案例
    jQuery ui effects
    9个优秀网上免费标签云生成工具
    30 +创意的登录页面设计灵感
    分享一个jQuery的时间轴插件:TimergliderJS
    36个非常有趣的互动网站设计作品范例
  • 原文地址:https://www.cnblogs.com/dandi/p/3890104.html
Copyright © 2011-2022 走看看