大数(乘除法)
来源:互联网 发布:知润信息科技有限公司 编辑:程序博客网 时间:2024/05/17 03:53
大数乘法:
string s1,s2;int check(int *a,int n)////去掉前导0 并且调整进位{ int i,len=n; while(!a[len-1] && len>1) len--; for(i=0; i<len; i++) { if(a[i]>=10) { a[i+1]=a[i+1]+a[i]/10; a[i]=a[i]%10; } } if(a[i]) len=i+1; return len;}string Int2Str(int *a,int n)///int to string { int i; string str(""); for(i=0; i<n; i++) str+=(a[n-i-1]+'0'); return str;}int *Str2Int(string s)////string to int{ int len=s.size(); int *a=new int[(len+1)*sizeof(int)]; for(int i=0; i<len; i++) a[i]=s[i]-'0'; return a;}string mult(string s1,string s2)///乘法运算{ reverse(s1.begin(),s1.end()); reverse(s2.begin(),s2.end()); int len1=s1.size(),len2=s2.size(); int len=len1+len2; int* t1=new int[(len1+1)*sizeof(int)]; int* t2=new int[(len2+1)*sizeof(int)]; int* ans=new int[(len+1)*sizeof(int)]; t1=Str2Int(s1),t2=Str2Int(s2); for(int i=0; i<len+1; i++) ans[i]=0; for(int i=0; i<len1; i++) for(int j=0; j<len2; j++) ans[i+j]=ans[i+j]+t1[i]*t2[j]; len=check(ans,len); return Int2Str(ans,len);}int main(){ cin>>s1>>s2; cout<<mult(s1,s2)<<endl; return 0;}
大数除法:
阅读全文
0 0
- 大数(乘除法)
- HDOJ1261 大数乘除法应用
- HDOJ1023(卡特兰数+大数乘除法)
- 大数的加减法、乘除法 code
- hdoj 字串数 1261 (排列组合&大数乘除法)好题
- C语言大数运算-乘除法篇
- 大数模板(大数乘小数)
- 大数A*B(大数乘) 浙江工业大学
- hdu 1261 (大数除法)
- 大数 (整数)乘法,除法
- 大数除法(模拟除)
- [源码]个人的大数相乘法及[转载]大数加减乘除法完全设计
- 大数 除法
- 大数除法
- 大数除法
- 大数除法
- 大数除法
- 大数除法
- 响应式分销代理系统助力企业更好发展
- GitChat·安全 | 搭建并使用便携式 4G/LTE 伪基站研究移动安全
- x264命令行工具(x264.exe)源码整体分析
- EasyUI入门6 传递中文参数值避免乱码
- PackageInstall 安装按钮无法点击的问题总结
- 大数(乘除法)
- JUnit4测试报错:class not found XXX
- 关于产品设计中的几个问题
- stream_get_meta_data 的使用方法及取得相关数据。
- Vue.js学习系列六——Vue单元测试Karma+Mocha学习笔记
- jquery ajax 使用记录
- eclipse调试方法和Scanner类输入方法
- 异或(今日头条2017秋招真题)Trie树
- 数据结构实验之图论六:村村通公路