高精度运算
来源:互联网 发布:5钻淘宝店铺多少钱 编辑:程序博客网 时间:2024/05/21 08:48
高精度运算结构体
struct bign{ int d[1010]; int len; bign(){ memset(d,0,sizeof(d)); len=0; }};相关方法
bign change(char str[]){ bign a; a.len=strlen(str); for(int i=0;i<a.len;i++){ a.d[i]=str[a.len-i-1]-'0'; } return a;}
高精度加法:
bign add(bign a,bign b){ bign c; int carry=0; for(int i=0;i<a.len||i<b.len;i++){ int t=a.d[i]+b.d[i]+carry; c.d[c.len++]=t%10; carry=t/10; } if(carry!=0) c.d[c.len++]=carry; return c;}
高精度减法:
bign sub(bign a,bign b){ bign c; for(int i=0;i<a.len||i<b.len;i++){ if(a.d[i]<b.d[i]){ a.d[i+1]--; a.d[i]+=10; } c.d[c.len++]=a.d[i]-b.d[i]; while(c.len-1>=1&&c.d[c.len-1]==0){ c.len--; } } return c;}
高精度与低精度乘法:
bign mul(bign a,int b){ bign c; int carry=0; for(int i=0;i<a.len;i++){ int t=a.d[i]*b+carry; c.d[c.len++]=t%10; carry=t/10; } while(carry!=0){ c.d[c.len++]=carry%10; carry/=10; } return c;}高精度与低精度除法:
bign div(bign a,int b,int& r){ bign c; c.len=a.len; for(int i=a.len-1;i>=0;i--){ r=r*10+a.d[i]; if(r<b) c.d[i]=0; else{ c.d[i]=r/b; r=r%b; } } while(c.len-1>=1&&c.d[c.len-1]==0){ c.len--; } return c;}
0 0
- 高精度运算
- 高精度运算
- 高精度运算
- 【高精度运算】
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算。
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- 高精度运算
- Struts2的基本流程的详细介绍
- 动画和视频的区别
- 机器学习系列:(七)用PCA降维
- 常见性能优化策略的总结
- 会声会影如何制作简易电子相册
- 高精度运算
- Linkerd + Namerd,实现Kubernetes 集群的灰度发布
- 我的CSDN博客开通了
- 自动化测试平台搭建之路
- Android App开发从零开始之基础篇—四大组件(一)—Activity初体验
- iOS - 微信支付流程
- 用VS开发PHP扩展
- java 通过接口引用对象
- ionic开发——中文确认弹出框