1.大数据存储
数组:0 1 2 3 4 5 6 7 8
数据:9 8 7 6 5 4 3 2 1
这样把高位存在后面是因为在进行运算的时候可能会产生进位,所以放在后面方便,要是放在前面的话产生进位存储的时候需要把后面的都往后移麻烦。
(1)加法: 模拟竖式:A3 A2 A1 A0
+ B2 B1 B0
---------------------------------
让从A0和B0相加然后 和10 取余,余数作为结果,若相加的结果大于10了则前面要加1
所以让每一位都是A0+B0+t
代码:#include#include using namespace std; const int N=1e6+10; vector add(vector &A,vector &B) { vector C; int t=0; //进位 for(int i=0;i A,B; cin>>a>>b; //例如输入a=“123456” //读入的是字符串类型,但是容器是int类型,push_back的时候是读入的是字符型a[i]='6',然后相减的到整形的数 for(int i=a.size()-1; i >= 0; i--) A.push_back(a[i]-'0'); //容器从前往后是654321 for(int i=b.size()-1; i >= 0; i--) B.push_back(b[i]-'0'); auto C=add(A,B); //自动选择类型 此处auto=vector for(int i=C.size()-1; i>= 0; i --) printf("%d",C[i]);//从后面输出 return 0; }



