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比字符串的长度小,那么在合适的位置插入小数点。

  • 相关阅读:
    django之快速分页
    python django 使用 haystack:全文检索的框架
    django的admin或者应用中使用KindEditor富文本编辑器
    Ubuntu安装微信
    python 基本模块
    [LeetCode] 860. 柠檬水找零 lemonade-change(贪心算法)
    [LeetCode] 455. 分发饼干 assign-cookies(贪心算法)
    [LeetCode] 122. 买卖股票的最佳时机ii best-time-to-buy-and-sell-stock-ii(贪心算法)
    [LeetCode] 225. 用队列实现栈
    [LeetCode] 155. minStack 设计最小栈
  • 原文地址:https://www.cnblogs.com/dandi/p/3890104.html
Copyright © 2011-2022 走看看