高精度乘法
来源:互联网 发布:网络课程评价标准 编辑:程序博客网 时间:2024/06/05 08:23
#include <stdio.h>#include<string.h>#define MAX 200 //最大位数int main(){ int j,k; int len1,len2,len,flag; int c1[MAX],c2[MAX],ans[MAX+MAX+1]; //int存储大数 char d1[MAX+1],d2[MAX+1]; //读入大数 memset(ans,0,sizeof(ans)); //方便输出结果 printf("Please input a big number:"); scanf("%s",d1); printf("Please input another big number:"); scanf("%s",d2); len1=strlen(d1); len2=strlen(d2); j=0; k=len1-1; while(d1[j] != '\0') //转换成数字存放在int数组 c1[k--]=d1[j++]-'0'; j=0; k=len2-1; while(d2[j] != '\0') //转换成数字存放在int数组 c2[k--]=d2[j++]-'0'; //处理因子为0 if(!c1[len1-1] || !c2[len2-1] ) { printf("%s * %s = 0\n",d1,d2); return 0; } //乘法 for(k=0; k<len2; k++) for(j=0; j<len1; j++) ans[k+j]+=c1[j]*c2[k]; //列竖式 //处理进位 len=len1+len2+1; //结果位数不能超过两个数字位数和+1 for(k=0; k<len; k++) if(ans[k]>=10) { ans[k+1]+=ans[k]/10; ans[k]%=10; } //输出结果 printf("%s * %s = ",d1,d2); flag=0; while(len--) { if(ans[len]!=0) flag=1; if(flag) printf("%d",ans[len]); } putchar('\n'); return 0;}
1 0
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- 高精度乘法
- Technocup 2017
- MATLAB入门教程
- 章三例题3——UVA 401 Palindromes
- Spring中的Scopes
- 计算机是如何区分读到的内存是指令还是数据
- 高精度乘法
- Smack初接触
- Codeforces Round #308 (Div. 2) C. Vanya and Scales dfs
- Unity材质清理器
- Dota2 AI开发(一)环境配置
- 八皇后问题
- [jvm] [面试] jvm 常用配置参数
- struts2之数据校验
- 用vue-cli构建了项目之后在webstorm开发,用npm run dev跑本地服务,经常修改之后在浏览器刷新没反应,偶尔才会有刷新,需要重新跑一遍npm run dev才会更新,这是怎么回事呢?