POJ 1001 求高精度幂(高精度)
2013-10-29 21:50
211 查看
当年做的第一道题(严格来说1000算第一道),当时还是个小屁孩,连C应该加什么头文件也记不清。这道题整整做了一个下午才A了
来说算法方面,对于这种高精度题,JAVA有绝对优势,毕竟有BigInteger类,对于C来说,我们只能模拟手算,写一个高精度乘法,用数组代替每一位,从后向前延伸。
下面是当年写的代码,现在看看实在是太丑了,简直无法直视,变量命名一塌糊涂,也算是一个学习的过程吧。
[/code]
来说算法方面,对于这种高精度题,JAVA有绝对优势,毕竟有BigInteger类,对于C来说,我们只能模拟手算,写一个高精度乘法,用数组代替每一位,从后向前延伸。
下面是当年写的代码,现在看看实在是太丑了,简直无法直视,变量命名一塌糊涂,也算是一个学习的过程吧。
#include<iostream> using namespace std; int yici(int store[],int lenth,int n) { int i=0,j=0,jieguo=0,jinwei1=0,jinwei2=0,zanshizong=lenth,k=0,zanshi=lenth; int b[1000]={0},c[9]={0}; for(i=0;i<9;i++) { c[i]=store[999-i]; } for(k=1;k<n;k++) { for(i=0;i<5;i++) { for(j=0;j<zanshi;j++) { jieguo=store[999-j]*c[i]+jinwei2; jinwei2=jieguo/10; jieguo=jieguo%10; b[999-i-j]+=jieguo+jinwei1; if(b[999-i-j]>=10) { jinwei1=b[999-i-j]/10; b[999-i-j]=b[999-i-j]%10; } else { jinwei1=0; } } if(i+j>zanshizong) { zanshizong=i+j; } if(jinwei1||jinwei2) { zanshizong++; b[1000-zanshizong]=+jinwei1+jinwei2; } jinwei1=0,jinwei2=0; } for(i=0;i<zanshizong;i++) { store[999-i]=b[999-i]; b[999-i]=0; } zanshi=zanshizong; } return zanshizong; } int main() { char r[6]={0}; int store[1000]={0},i=0,n=0,point=0,lenth=0,sin=0,j=0,k=0,z=0; while(cin>>r>>n) { lenth=5; for(i=0;r[i]!='.'&&i<6;i++) { store[995+i]=r[i]-'0'; } point=5-i; for(i++;i<6;i++) { store[994+i]=r[i]-'0'; } lenth=yici(store,lenth,n); point=point*n; for(i=0;i<lenth-point;i++) { if(store[1000-lenth]!=0) { cout<<store[1000-lenth+i]; } } for(j=999;j>1000-lenth;j--) { if(store[j]!=0) break; } j=999-j; if(j<point) { cout<<'.'; } if(lenth<point) { for(z=i;z+lenth<point;z++) { cout<<'0'; } } for(;i<lenth;i++) { if(lenth-i-j>0) cout<<store[1000-lenth+i]; } cout<<endl; } }
[/code]
相关文章推荐
- POJ 1001 求高精度幂(高精度)
- poj每日一题之1001(求高精度幂)
- [POJ] 1001 -> 求高精度幂
- 花了近一天的时间写了小数的高精度乘法,并通过了POJ1001,颇有成就感。
- poj 1001 Exponentiation(高精度运算)
- POJ1001 求高精度幂 ACM解题报告(高精度模板)
- POJ 1001 Exponentiation&&NYOJ 155 求高精度幂
- poj1001高精度乘法
- poj 1001(高精度)
- POJ1001 高精度浮点幂运算
- 20140709 【高精度浮点数】POJ 1001 Exponentiation
- poj 1001 Exponentiation(高精度运算)
- NYOJ 155 POJ 1001 求高精度幂
- poj1001 高精度
- POJ1001 高精度
- POJ 1001 高精度乘法
- POJ - 1001 Exponentiation(浮点数高精度乘法)
- poj 1001 Exponentiation(高精度运算)
- poj-1001-1405-1503-高精度问题
- POJ 1001 高精度乘法运算