首页 > 其他分享 >计算的轮子

计算的轮子

时间:2023-02-11 12:13:17浏览次数:38  
标签:const string int -- length maxn 计算 轮子

//加法
const int maxn = 520; int a[maxn],b[maxn],c[maxn]; int main()
{ string A,B; cin >> A >> B; int len = max(A.length(),B.length()); for(int i = A.length()-1,j = 1;i >= 0;i--,j++)
{ a[j] = A[i] - '0'; } for(int i = B.length()-1,j = 1;i >= 0;i--,j++)
{ b[j] = B[i] - '0'; } for(int i = 1; i <= len;i++){ c[i] += a[i] + b[i]; c[i + 1] = c[i] / 10; c[i] %= 10; } if(c[len+1]) len++; for(int i = len;i >= 1;i--)
{ cout << c[i]; } return 0; }

//乘法
int main(){
    const int maxn = 520;
    int a[maxn] = {0},b[maxn] = {0},c[maxn] = {0};
    string A,B;
    cin >> A >> B;
    for(int p = A.length() - 1; p >=0 ;p--)a[A.length() - p] = A[p] - '0';
    for(int p = B.length() - 1; p >=0 ;p--)b[B.length() - p] = B[p] - '0';
    
    for(int i = 1; i <= A.length();i++){
        for(int j = 1;j <= B.length();j++){
            c[i + j - 1] += a[i] * b[j];
        }
    }
    int len = A.length() + B.length();
    for(int p = 1;p <= len;p++){
        c[p+1] += c[p] / 10;
        c[p] %= 10;
    }
    for(;!c[len];)
        len--;
    for(int i = max(1,len);i >= 1;i--){
        cout << c[i];
    }
    return 0;
}
 

标签:const,string,int,--,length,maxn,计算,轮子
From: https://www.cnblogs.com/haimian666/p/17111115.html

相关文章