大数模板
来源:互联网 发布:淘宝宝贝视频拍摄技巧 编辑:程序博客网 时间:2024/06/07 06:17
用到string这个类,要用
#include<string>
一:大数相乘:1.给的数是否有前导零(00 ,0011),
2.数组的大小要改
string mul(string a,string b){ if(a=="0"||b=="0") return "0"; int e[100];//数组的大小要改 memset(e,0,sizeof(e)); int i=0,j=0; int la=a.length()-1; int lb=b.length()-1; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); for(i=0; i<=la; i++) for(j=0; j<=lb; j++) e[i+j]+=(a[i]-'0')*(b[j]-'0'); int t=la+lb+2; for(i=0; i<=t; i++) { e[i+1]+=e[i]/10; e[i]=e[i]%10; } for(i=t; i>=0; i--) if(e[i]) break; string s=""; if(i!=-1)//防止有多个零(000) { for(j=i; j>=0; j--) s+=(e[j]+'0'); } else s="0"; return s;}
二:大数相加
string add(string a,string b){ if(a=="0") return b; if(b=="0") return a; int la=a.size(); int lb=b.size(); reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); string c=""; int k=0,i; for(i=0; i<la&&i<lb; i++) { int p=a[i]-'0'+b[i]-'0'+k; c+=p%10+'0'; k=p/10; } while(i<la) { int p=a[i++]-'0'+k; c+=p%10+'0'; k=p/10; } while(i<lb) { int p=b[i++]-'0'+k; c+=p%10+'0'; k=p/10; } if(k) c+=k+'0'; reverse(c.begin(),c.end()); return c;}
3.大数相减
string sub(string a,string b)//代表a-b,数组大小要改,可以解决有前导零{ int i,j,k,s,flag=1; int tmpa[10000],tmpb[10000],c[10000]; string ans; i=0; for(i=0;i<a.size();i++) if(a[i]!='0') break; if(i==a.size()) a="0"; else { string f=a; a=""; for(;i<f.size();i++) a+=f[i]; } i=0; for(i=0;i<b.size();i++) if(b[i]!='0') break; if(i==b.size()) b="0"; else { string f=b; b=""; for(;i<f.size();i++) b+=f[i]; } if(a.size()<b.size()||(a.size()==b.size()&&a<b)) { string tmp=a; a=b; b=tmp; flag=0; } while(a.length()>b.length()) b='0'+b; int len=a.length(); for(i=0;i<len;i++) { tmpa[i]=a[i]-'0'; tmpb[i]=b[i]-'0'; } for(i=len-1;i>=0;i--) { if(tmpa[i]>=tmpb[i]) c[i]=tmpa[i]-tmpb[i]; else { c[i]=10+tmpa[i]-tmpb[i]; tmpa[i-1]--; } } for(i=0;i<len-1;i++) { if(c[i]!=0) break; } for(j=i;j<len;j++) { ans=ans+(char)(c[j]+'0'); } if(!flag) { ans='-'+ans; } return ans;}
阅读全文
0 0
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数 模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 大数模板
- 决策树算法详解(3)
- eclipse,工程/文件目录,相对路径
- HDU 1312Red and Black(dfs)
- 转载知乎关于python编码的讲解
- 顺序表应用8:最大子段和之动态规划法
- 大数模板
- 深入理解Java并发之synchronized实现原理
- DOM对象与jquery对象之间的关系对比
- hdu1166之线段树
- 解决Graphics2D drawImage图片失真的问题
- action相关
- 有序01字符串
- 自定义view雪花
- 1101. Quick Sort (25)