大数乘法(错于2*LEN-1)
来源:互联网 发布:下载动画的软件 编辑:程序博客网 时间:2024/06/06 04:56
大数乘法:
求两个不超过200 位的非负整数的积。
输入数据有两行,每行是一个不超过200 位的非负整数,没有多余的前导0。
输出要求一行,即相乘后的结果。结果里
<span style="color:#006600;">不能有多余的前导0,即如果结果是342,那么就不能输出为0342。</span>#include<stdio.h>
#include<string.h>#define LEN 220char arr[LEN],brr[LEN];int crr[LEN],drr[LEN],err[LEN*2];int main(){ while(1) { int i,j,l,k; memset(crr,0,sizeof(crr)); memset(drr,0,sizeof(drr));memset(err,0,sizeof(LEN*2));gets(arr);gets(brr); l=strlen(arr); k=strlen(brr);for(i=0,j=l-1;i<l;i++,j--) crr[j]=arr[i]-'0'; for(i=0,j=k-1;i<k;i++,j--)drr[j]=brr[i]-'0'; <span style="color:#cc0000;">//for(i=0;i<3;i++) //printf("%d %d",crr[i],drr[i]); </span>for(i=0;i<l;i++)for(j=0;j<k;j++)err[i+j]+=crr[i]*drr[j];for(i=0;i<LEN*2;i++)if(err[i]>=10){err[i+1]+=err[i]/10;err[i]=err[i]%10;}<span style="color:#cc0000;">//for(i=0;i<5;i++)12//printf("-%d ",err[i]); //for(j=2*LEN;err[j]==0&&j>=0;j--);</span><span style="color:#ff0000;"><span style="color:#ff0000;">2*LEN </span>未减 1,导致取值到数组外 </span> for(j=2*LEN-1;err[j]==0&&j>=0;j--);if(j>=0)for(;j>=0;j--)printf("%d",err[j]);elseprintf("0");printf("\n"); }return 0;}
0 0
- 大数乘法(错于2*LEN-1)
- 10000位内高精度乘法(大数乘法)1…
- 大数乘法(模版)
- Product(大数乘法)
- 大数乘法(一)
- 大数乘法(C++)
- 大数乘法(二)
- 大数乘法(模板)
- 大数乘法(加法)运算
- Bull Math(大数乘法)
- 大数的乘法(正数)
- UVA Product(大数乘法)
- Product(大数乘法模板)
- 大数 (整数)乘法,除法
- 大数运算(大数加法and大数乘法)
- 大数乘法
- 大数乘法
- 大数乘法
- C语言 BMP图片处理
- 如何把pdf转换成excel转换器免费使用
- Codeforces Round #259 (Div. 2)-C. Little Pony and Expected Maximum
- CoreData学习记录
- struct list_head 解析
- 大数乘法(错于2*LEN-1)
- 黑马程序员-IO流中的字符流
- C 语言04
- POJ 2398 Toy Storage(叉积)
- Hibernate中各个JAR包的用途
- 本地存储方式比较
- LeetCode-Pascal's Triangle II
- Surrounded Regions & Wildcard Matching
- 肯德基房管科谁都会发可三