标签:0基础 += == 问题 就是 思路 space its 操作
乘法的思路简单的说就是还是依靠竖式的原理,有第二个数的第一位乘上上面的全部数,再让第二个数的第二位乘上上面所有的数,这个操作用一个嵌套循环就可以完成了,再是进位问题,这个进位和加法有些不同,这里进位的思路是先不进位,将没进过位的数,也就是一个两位数存在一个数组的格子里,然后在后面部分对每一位去mod 9,来去取要进位的部分,往前面一位加上进位的数,然后再在这一位剪掉进了位的部分,然后执行相同的操作对下一位,这里给出个流程图做说明。
下面??,是完整代码
#include <bits/stdc++.h> #define N 2001 using namespace std; int main(){ string s1,s2; int a[N],b[N],c[2*N],la,lb; cin>>s1>>s2; la = s1.length(),lb=s2.length(); //cout<<la<<lb; for(int i=0;i<la;i++) a[i]=s1[la-i-1]-‘0‘; for(int i=0;i<lb;i++) b[i]=s2[lb-i-1]-‘0‘; for(int i=0;i<la;i++) for(int j=0;j<lb;j++) c[i+j]+=a[i]*b[j]; int l=la+lb; //cout<<l; //return 0; for(int i=0;i<l;i++) { c[i+1]+=c[i]/10; c[i]%=10; } while(c[l-1]==0&&l>1) l--; for(int i=l-1;i>=0;i--) { cout<<c[i]; } return 0; }
显然我的坑明显不止这么多,我反思,我们继续
还是第四弹高精度(在这么多错),这个位置
这里说的有点问题,不是编译器,是c++的ide,还有一个问题
下面说的是第三弹的,我在第三弹给出的不是全部的队列操作,但常用的就是那些了
还有,平常我发的博文可能有的底发不严谨,大家可以去我的QQ群里说,群号1031467671,
如果你欣赏我的文章,麻烦点个赞,再关注?一下我,如果有什么我没说到的坑,请进群说明或留言
标签:0基础 += == 问题 就是 思路 space its 操作
原文地址:https://www.cnblogs.com/qj-Network-Box/p/12522550.html