http://poj.org/problem?id=1001

 //10000000   100000 

 #include<iostream>
 #include<cstring>
 using namespace std;

 ],tts[];                            /*用于处理输入,删去点,签到0,点后0,统计小数点后数的个数保存至origu */
 ],ans[],t_ans[];        // t_ans存乘法运算的中间过程
 int b,u,origu,BITS,origBITS;

 void my_pow(int x){
     )
         return ;

     my_pow(x/);
     //接下来ans*ans
     memset(t_ans,,sizeof(t_ans));
     ;i>=;i--){       //模拟乘法
         -i;            /*tpos即 这次乘的结果存在t_ans哪一位 ,注意ans是高位在前, t_ans是高位在后的 */
         ;j>=;j--){
             t_ans[tpos]+=ans[j]*ans[i];
             ){            /*进位,   这个进位应该进一位就可以了,没有必要再向前推了,因为某一位算出来的最大也到不了100(?) */
                 t_ans[tpos+]+=t_ans[tpos]/;
                 t_ans[tpos]%=;
             }
             tpos++;
         }
     }

     ;   //   统计 2500-t_ans的位数
     -;i>=;i--)
         )
             _BITS++;
         else
             break;
     BITS=-_BITS;    //更新BITS  

     ,j=;i>=;i--)            //高位在前存到ans里去
         ans[j++]=t_ans[i];
     u*=;            //因为是自己×自己    所以小数点后数字个数增加一倍 

     ){                        //如果^b的b是奇数,还得再×一下初始的数即orig
         //ans*orig

         memset(t_ans,,sizeof(t_ans));

         ;i>=;i--){
             -i;
             ;j>=;j--){
                 t_ans[tpos]+=ans[j]*orig[i];
                 ){
                     t_ans[tpos+]+=t_ans[tpos]/;
                     t_ans[tpos]%=;
                 }
                 tpos++;
             }
         }

         _BITS=;
         -;i>=;i--)
             )
                 _BITS++;
             else
                 break;
         BITS=-_BITS;  

         ,j=;i>=;i--)
             ans[j++]=t_ans[i];
         u=u+origu;
     }

 }

 void _print(){
     if(u<BITS){
         ;
         ;i>=BITS-u;i--){
             )
                 _del++;
             else
                 break;
         }
         BITS-=_del;
         u-=_del;
         ;i<BITS-u;i++)
             printf("%d",ans[i]);
         if(u){
             printf(".");
             for(int i=BITS-u;i<BITS;i++)
                 printf("%d",ans[i]);
         }
         printf("\n");
     }
     else{
         ;
         ;i>=;i--){
             )
                 _del++;
             else
                 break;
         }
         BITS-=_del;
         u-=_del;
         printf(".");
         ;i<u-BITS;i++)
             printf(");
         ;i<BITS;i++)
             printf("%d",ans[i]);
         printf("\n");
     }
 }

 int main(){
     ){

         u=;

         ;                                                    //删点后0
         ;i>=;i--)
             ')
                 ts[i]='\0';
             else
                 fg=;

         ;i>=;i--)            //删点,统计点后数个数u  origu
             if(ts[i]!='.')
                 u++;
             else
                 break;
         origu=u;

         ;ts[i]!='\0';i++)            // 删点,点后前移
             ts[i]=ts[i+];        

         memset(tts,,sizeof(tts));                    //删前导0
         ;
         fg=;
         ;ts[i]!='\0';i++)
             '&&fg)
                 pos++;
             else
                 fg=;
         ;ts[i]!='\0';i++)
             tts[j++]=ts[i];

         BITS=origBITS=;
         memset(ans,-,sizeof(ans));
         memset(orig,-,sizeof(orig));
         ;tts[i]!='\0';i++){                //转到int数组
             ans[i]=orig[i]=(');
             origBITS++;BITS++;
         }

         my_pow(b);                    //快速幂
         _print();                    //输出
     }
     ;
 } 

但是杭电这道同样的过不了,据说杭电会有00000.这样的测试数据?但是0能记成这种记法吗?还有人家明明说了R>0.0   ,   n>0为什么还非得找R=0N=0的特例啊,不管了,反正俺poj过了

Exponentiation POJ-1001的更多相关文章

  1. POJ 1001 Exponentiation(大数运算)

    POJ 1001 Exponentiation 时限:500 ms   内存限制:10000 K 提交材料共计: 179923   接受: 43369 描述:求得数R( 0.0 < R < ...

  2. [POJ 1001] Exponentiation C++解题报告 JAVA解题报告

        Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 126980   Accepted: 30 ...

  3. Poj 1001 / OpenJudge 2951 Exponentiation

    1.链接地址: http://poj.org/problem?id=1001 http://bailian.openjudge.cn/practice/2951 2.题目: Exponentiatio ...

  4. POJ 1001 Exponentiation 无限大数的指数乘法 题解

    POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...

  5. [POJ] #1001# Exponentiation : 大数乘法

    一. 题目 Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 156373   Accepted: ...

  6. poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)

    Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 138526   Accepted: 33859 ...

  7. POJ 1001 Exponentiation(JAVA,BigDecimal->String)

    题目 计算实数a的n次方,具体输出格式看案例 import java.util.*; import java.math.*; public class Main { public static voi ...

  8. POJ 1001 Exponentiation

    题意:求c的n次幂……要求保留所有小数…… 解法:一开始只知道有BigInteger……java大数+模拟.第一次写java大数……各种报错各种exception……ORZ 没有前导0和小数后面的补位 ...

  9. POJ 1001 Exponentiation 模拟小数幂

    模拟小数幂 小数点位 pos 非零末位 e 长度 len 只有三种情况 pos > len pos < e e < pos < len #include <iostrea ...

  10. 【POJ 1001】Exponentiation (高精度乘法+快速幂)

    BUPT2017 wintertraining(15) #6A 题意 求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25) 题解 将R用字符串读 ...

随机推荐

  1. UVa 10829 L-Gap Substrings (后缀数组+rmq)

    题意:给定上一个串,问你多少种UVU这一种形式的串,其中U不为空并且V的长度给定了. 析:枚举 U 的长度L,那么U一定是经过 0 L 2L 3L .... 其中的一个,所以求两个长度反lcp,一个向 ...

  2. input中的disabled、readonly和hidden

    最近开发项目的时候,遇到一个问题,就是我希望某个input中的值不能被修改,刚开始的时候,我想到的是disabled属性!但是,发现表单提交后,值无法传递过来! 解决方法: 可以设置其readonly ...

  3. 20169205实验四 Android程序设计

    20169205实验四 Android程序设计 实验内容及步骤 (一)第一个android studio项目 android studio与eclipse的传统安卓开发有一些不同之处 android ...

  4. FlexBox弹性盒布局

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  5. ZOJ3708:Density of Power Network

    The vast power system is the most complicated man-made system and the greatest engineering innovatio ...

  6. SQLServer中数据加密方法

    对SQLServer中的数据进行加密,有三种方法, 1.  在程序语言中先对数据进行加密后再把加密后的数据保存在SQLServer数据库中: 2.  利用SQLServer未公开的加密密码函数,在SQ ...

  7. python 中为什么不需要重载

    函数重载主要是为了解决两个问题. (1)可变参数类型. (2) 可变参数个数. 另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两 ...

  8. [ruby]rubyGem出现ERROR: Could not find a valid gem时的处理方法

    场景: 想安装SASS的时候,打开cmd,输入gem install sass的时候却出现了: ERROR:  Could not find a valid gem 'sass' (>= 0), ...

  9. 浏览器兼容性随手记:Javascript

    1.event IE9以下不支持直接获取event对象,所以需要写兼容: var event = event?event:window.event; IE8以下不支持event.target,但是可以 ...

  10. 62 不同路径 leetcode JAVA

    题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). 问 ...