NYOJ 155 求高精度幂
求高精度幂
- 描述
-
对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。
现在要你解决的问题是:对一个实数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 求高精度幂相关推荐
- POJ 1001-Exponentiation(NYOJ 155 求高精度幂):大数问题
点击打开链接 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 120472 Accepted: ...
- 求高精度幂(java)
求高精度幂 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 对数值很大.精度很高的数进行高精度计算是一类十分常见的问题.比如,对国债进行计算就是属于这类问题. 现在要你 ...
- POJ-1001 求高精度幂
[题目描述] 给定R与n,求Rn的精确值,其中(0.0<R<99.99, n为整数0<n<=25). [思路分析] 1. 存储结构 由于R最大不超过100,n不会超过25,故R ...
- POJ1001 求高精度幂 (分治高精度大数相乘)
总体思路: 高精度大数乘法 需要记录小数点位置 需要使用大数相乘 只是考验能否使用大数相乘 大整数乘法可以模拟乘法运算写 也可以使用分治写法 分治可以优化XY=AC2^N [(A-B)(D-C)+AC ...
- 求高精度幂 java_JAVA高精度_求高精度幂
要想用Java轻快的水过这道题,要先了解下JAVA.math中的几个方法 1.Java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指 ...
- python求次幂_python如何求次幂?
python中可以使用math模块中的pow()方法求次幂.pow() 方法返回xy(x的y次方)的值. math 模块 pow() 方法的语法:import math math.pow( x, y ...
- nyoj 420(快速幂)
p次方求和 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 一个很简单的问题,求1^p+2^p+3^p+--+n^p的和. 输入 第一行单独一个数字t表示测试数据组数.接 ...
- LeetCode-50:关于浮点型数字求高次幂的高效运算
题目描述比较简单,就是求-100.0到100.0的n次幂,n为32位有符号整数. 比如求2.00000的10次幂,则需要返回的值为1024.00000:诶,1024刚过:( 首先比较无脑的就是一次次的 ...
- 如何用C语言来求次幂(快速幂算法)
河大大一新生一枚 喜欢计算机:喜欢编程 目前在C语言的学习过程中,会定时分享学习心得 希望和大学一起学习,也希望多家多多关注 如何实现快速幂呢. 在这里通过画图讲讲思路 通过上面的过程我们已经了解了大 ...
最新文章
- 肝了十几个小时的java反射,希望对大家有所帮助吧!
- BAT批处理脚本结合SQL应用案例
- wxpython 多线程_在wxPython中使用线程连续更新GUI的好方法?
- Python 日期和时间戳的转换
- WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用
- hdu 3037 Lucas定理
- 手把手教你做一套 UTM 广告投放!| 原力计划
- 【读书笔记-数据挖掘概念与技术】数据预处理
- 树莓派raspberry pi 4 SSH默认密码无法登录解决办法
- 浅谈事件委托(事件代理)和事件冒泡
- 单龙芯3A3000-7A1000PMON研究学习-(25)撸起袖子干-再来一杯代码7
- 华为AX3Pro路由器配置成交换机使用
- 小码哥crm学习笔记
- iPhone SE2外观酷似iPhone 8,香吗?
- 吴军,阅读与写作,06,如何突破阅读理解的瓶颈
- 结构体的定义、初始化
- 关于路由的这10个问题,网络工程师们应该掌握
- linux 下使用飞信
- 一件衣服95元,如果消费满300元,可以打八五折。输入购买衣服数,输出需要支付的金额。
- OpenCV4学习笔记(58)——二维码检测与识别