标签:https button sample style tput col sam 数字 marked
求两数的积。
两行,两个数。
积
1 2
2
每个数字不超过10^2000,需用高精
c++代码:
#include<iostream> #include<cstring> using namespace std; int main() { string a; string b; cin>>a; cin>>b; if(a=="0"||b=="0") cout<<"0"; int A[10000]={0},B[10000]={0},C[10000]={0};//A用来存a中的每一个数 。。。。C用来存a和b的每一位数相乘的结果 int alen=a.length(); int blen=b.length(); int i,j; for(i=0;i<=alen;i++) A[alen-i]=a[i]-‘0‘;//将a的每一位数转化为整数并逆序存入到A中 for(j=0;j<=blen;j++) B[blen-j]=b[j]-‘0‘;//b的每一位数转化为整数并逆序存入到B中 for(i=1;i<=blen;i++)//外层为乘数;与b的每一位相乘; { int x=0; //记录进位数 for(j=1;j<=alen;j++) { C[i+j-1]=C[i+j-1]+x+A[j]*B[i];//当前位置的的数等于当前位置的数加上上一个数的进位数再加A[j]*B[i] x=C[i+j-1]/10;//当前位置数该向下一位进的位 C[i+j-1]=C[i+j-1]%10;//进位之后的数 } C[i+alen]=x;//内层循环完了,将剩下的进位数进给下一位 } int clen=alen+blen; while(C[clen]==0) clen--;//找出前缀0; for(i=clen;i>0;i--) cout<<C[i];//反向输出; return 0; }
标签:https button sample style tput col sam 数字 marked
原文地址:https://www.cnblogs.com/zhoubo123/p/11369039.html