博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Exponentiation
阅读量:4982 次
发布时间:2019-06-12

本文共 2007 字,大约阅读时间需要 6 分钟。

1 #include
2 #include
3 using namespace std; 4 #define MOD 10 5 #define END -1 6 7 int bignum[1000] ; 8 void MulBigSmall(int a[],int n) 9 {10 int i, cc=0;//进位标志11 for(i=1; i<= a[0] ; i++)12 {13 a[i] = a[i] * n+ cc;14 cc= a[i] / MOD;15 a[i] %= MOD;16 }17 while(cc)18 {19 a[i++] = cc% MOD;20 cc/= MOD;21 }22 a[0] = i-1;23 }24 void output(int pos)25 {26 int i, j;27 if(bignum[0] > pos)//字符数大于小数数 28 {29 //输出小数点前的0 30 for(j=0, i= bignum[0] ; j< bignum[0] - pos; j++, i--)31 printf("%d", bignum[i]) ;32 for(j=1; bignum[j] ==0; j++) bignum[j] = END;//去除尾033 if(bignum[i] == END|| i==0)34 return;//整数35 printf(".") ;36 for(; bignum[i] != END&& i>=1; i--)37 printf("%d", bignum[i]) ; 38 }39 40 else//字符数小于或等于小数数 41 {42 printf(".") ;43 for(i=0; i< pos- bignum[0] ; i++)44 printf("0") ;45 for(i=1; bignum[i] ==0; i++) bignum[i] = END;//去除0 46 for(i= bignum[0] ; bignum[i] != END&& i>=1;i--)47 printf("%d", bignum[i]) ;48 }49 }50 int main()51 {52 int i, power, num, pos;53 char str[100] ;54 while(~scanf("%s %d", str, &power))55 {56 for(num=0, i=0, pos=5; i<6; i++)57 {58 if(str[i] =='.') pos= i;59 else num= num*10+ str[i] -'0';60 }61 pos= (5- pos) * power;//计算有n位小数62 bignum[0] = bignum[1] =1;63 while(power--)64 MulBigSmall(bignum,num);65 output(pos) ;66 printf("\n") ;67 }68 return 0;69 }

属于大数处理的题目,考虑的真的有好多,自己写的时候基本上没出现错误了,可是精度发生了问题,当输入为1.0100 和1时,输出却为1.0099,还有就是输入为0.0100和1时,输出的是0.0099……,我表示不知道怎么改,后来改用字符串存,却发现很多小数点的问题,真的被玩爆了,还有值得注意的是,测数据有可能有:000000和一个整数,或者是0000.00和一个整数的组合,应该输出是0的,还有输入的第一个数有可能不只是在100以内。纠结了很久,就看了别人的AC代码,表示自己还得继续努力啊!

转载于:https://www.cnblogs.com/ouyangduoduo/archive/2012/06/21/2558034.html

你可能感兴趣的文章
08ssm三大框架整合以前步骤
查看>>
R语言学习笔记之八
查看>>
正则表达式语法(msdn)
查看>>
oralce使用INSERT语句向表中插入数据
查看>>
MySQL 数据类型 详解 (转载)
查看>>
干净win7要做几步才能运行第一个Spring MVC 写的动态web程序
查看>>
Maven学习笔记(一)
查看>>
分割线
查看>>
xls的读写
查看>>
用函数创建子进程
查看>>
Myeclipse配置插件
查看>>
gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)
查看>>
蓝桥杯之入学考试
查看>>
新公司java的注解以及springboot的相关注解
查看>>
Unity脚本的生命周期中几个重要的方法
查看>>
poj1552
查看>>
Thinkphp中文水印和图片水印合体集成插件
查看>>
FLASK安装--兼收EZ_INSTALL及PIP
查看>>
C++静态成员变量和静态成员函数小结
查看>>
Python---Flask--02--模板
查看>>