大数乘法
2016-02-03 13:00
239 查看
当两个比较大的整数相乘时,可能会出现数据溢出的情形。为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法。具体来说,首先以字符串的形式输入两个整数,每个整数的长度不会超过8位,然后把它们相乘的结
#include"stdio.h" #include"string.h" int main(){ char a[9],b[9],s[100],a1[9],b1[9]; int i,j,alen,blen; scanf("%s",a1); scanf("%s",b1); alen=strlen(a1); blen=strlen(b1); for(i=0;i<alen;i++) { a[i]=a1[alen-i-1]-'0';//将字符串中的字符转换成数字并倒序储存 } for(i=0;i<blen;i++){ b[i]=b1[blen-i-1]-'0'; } for(i=0;i<100;i++){ s[i]=0; } for(i=0; i<alen; i++){//乘法实现 for(j=0; j<blen; j++){ s[i+j]+=a[i]*b[j]; if(s[i+j]>=10){ s[i+j+1]+=s[i+j]/10; s[i+j]%=10; } } } for(i=99; i>0; i--) if(s[i]!=0) break; for(; i>=0; i--) printf("%d",s[i]); printf("\n"); return 0; }
相关文章推荐
- 油猴脚本实现跨域请求或下载文件 tampermonkey
- linux运维实战练习-2016年1月19日-2月3日课程作业
- angularJS $http $q $promise
- 搜索与回溯算法(三)
- 对于敬业
- 时隔一年好搜更名换回360搜索
- Ninja初步
- 传输层安全协议(TLS)1.2版
- angularJS $resource
- Java设计模式(一)——代理模式
- [置顶] 请求处理方法签名
- web开发之图解请求转发与重定向及其使用注意事项
- Objective-C与JavaScript交互的那些事
- LeetCode 242. Valid Anagram
- VxWorks IP地址设定
- 自建数据源激活失败
- 【既见树木又见森林系列(一)】Android系统的启动过程
- phpDocumentor2的正确安装和使用方法
- 花生壳使用 - 代理发布本地Tomcat
- VirtualBox搭建Hadoop2.7.2环境(2)——本机模式