求高精度幂

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
描述

对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。

现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < =n <= 25。

输入
输入有多行,每行有两个数R和n,空格分开。R的数字位数不超过10位。
输出
对于每组输入,要求输出一行,该行包含精确的 R 的 n 次方。输出需要去掉前导的 0 后不要的 0 。如果输出是整数,不要输出小数点。
样例输入
95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12
样例输出
548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
AC码:
#include<stdio.h>
#include<string.h>
#define MAX 300
long long num[MAX];
int main()
{long long R=0,n=0;long long i,j,k,count=0;char ch[15];while(scanf("%s%ld",ch,&n)!=EOF){R=0;count=0;for(i=0;i<strlen(ch);i++){if(ch[i]!='.')R=R*10+(ch[i]-'0');elsecount=strlen(ch)-i-1;}if(n==0){if(R>0)printf("1\n");elseprintf("0\n");continue;}for(i=0;i<MAX-1;i++)num[i]=0;num[MAX-1]=1;k=MAX-1;for(i=1;i<=n;i++){j=MAX-1;while((j<=MAX-1)&&(j>=k)){num[j]*=R;j--;}for(j=MAX-1;j>=k;j--){while(num[j]>9){num[j-1]+=num[j]/10;num[j]=num[j]%10;j--;}}k=j+1;}if(count*n-MAX+k>=0){printf(".");for(i=1;i<=count*n-MAX+k;i++)printf("0");}j=MAX-1;while((num[j]==0)&&(MAX-j+1<=count*n))j--;for(i=k;i<=j;i++){if((i-k)==(MAX-k-count*n)){if(num[i]!=0)printf(".");elsebreak;}printf("%d",num[i]);}printf("\n");}return 0;
}

NYOJ 155 求高精度幂相关推荐

  1. POJ 1001-Exponentiation(NYOJ 155 求高精度幂):大数问题

    点击打开链接 Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 120472   Accepted: ...

  2. 求高精度幂(java)

    求高精度幂 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 对数值很大.精度很高的数进行高精度计算是一类十分常见的问题.比如,对国债进行计算就是属于这类问题.  现在要你 ...

  3. POJ-1001 求高精度幂

    [题目描述] 给定R与n,求Rn的精确值,其中(0.0<R<99.99, n为整数0<n<=25). [思路分析] 1. 存储结构 由于R最大不超过100,n不会超过25,故R ...

  4. POJ1001 求高精度幂 (分治高精度大数相乘)

    总体思路: 高精度大数乘法 需要记录小数点位置 需要使用大数相乘 只是考验能否使用大数相乘 大整数乘法可以模拟乘法运算写 也可以使用分治写法 分治可以优化XY=AC2^N [(A-B)(D-C)+AC ...

  5. 求高精度幂 java_JAVA高精度_求高精度幂

    要想用Java轻快的水过这道题,要先了解下JAVA.math中的几个方法 1.Java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指 ...

  6. python求次幂_python如何求次幂?

    python中可以使用math模块中的pow()方法求次幂.pow() 方法返回xy(x的y次方)的值. math 模块 pow() 方法的语法:import math math.pow( x, y ...

  7. nyoj 420(快速幂)

    p次方求和 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 一个很简单的问题,求1^p+2^p+3^p+--+n^p的和. 输入 第一行单独一个数字t表示测试数据组数.接 ...

  8. LeetCode-50:关于浮点型数字求高次幂的高效运算

    题目描述比较简单,就是求-100.0到100.0的n次幂,n为32位有符号整数. 比如求2.00000的10次幂,则需要返回的值为1024.00000:诶,1024刚过:( 首先比较无脑的就是一次次的 ...

  9. 如何用C语言来求次幂(快速幂算法)

    河大大一新生一枚 喜欢计算机:喜欢编程 目前在C语言的学习过程中,会定时分享学习心得 希望和大学一起学习,也希望多家多多关注 如何实现快速幂呢. 在这里通过画图讲讲思路 通过上面的过程我们已经了解了大 ...

最新文章

  1. 肝了十几个小时的java反射,希望对大家有所帮助吧!
  2. BAT批处理脚本结合SQL应用案例
  3. wxpython 多线程_在wxPython中使用线程连续更新GUI的好方法?
  4. Python 日期和时间戳的转换
  5. WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用
  6. hdu 3037 Lucas定理
  7. 手把手教你做一套 UTM 广告投放!| 原力计划
  8. 【读书笔记-数据挖掘概念与技术】数据预处理
  9. 树莓派raspberry pi 4 SSH默认密码无法登录解决办法
  10. 浅谈事件委托(事件代理)和事件冒泡
  11. 单龙芯3A3000-7A1000PMON研究学习-(25)撸起袖子干-再来一杯代码7
  12. 华为AX3Pro路由器配置成交换机使用
  13. 小码哥crm学习笔记
  14. iPhone SE2外观酷似iPhone 8,香吗?
  15. 吴军,阅读与写作,06,如何突破阅读理解的瓶颈
  16. 结构体的定义、初始化
  17. 关于路由的这10个问题,网络工程师们应该掌握
  18. linux 下使用飞信
  19. 一件衣服95元,如果消费满300元,可以打八五折。输入购买衣服数,输出需要支付的金额。
  20. OpenCV4学习笔记(58)——二维码检测与识别

热门文章

  1. spring boot实现软删除
  2. python利用pandas和xlrd读取excel,特征筛选列
  3. 一步一步学ROP之Android ARM 32位篇
  4. cassandra的命令
  5. 13.小结Action
  6. only SOY MILK IS NOT ENOUGH FOR BREAKFAST
  7. 知识产权创业的比赛结果
  8. 《柯南 绯红色的子弹》 观后感
  9. 【转】Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱
  10. 【转】iphone - ios app maximum memory budget