高精度减法

#include<stdio.h>  
#include<string.h>  
using namespace std;  
string mtion1,mtion2;  
int ji[5001]={0},a[5001]={0},b[5001]={0};  
void readstring(string mtion,int a[5001],int len,int th)  
{  
    for(int i=len-1;i>=0;i--)  
    {  
        a[th]=mtion[i]-'0';  
        th++;  
    }  
}  
void multiplication(int ji[5001],int a[5001],int b[5001],int len1,int len2)
{  
    for(int i=0;i<len2;i++)  
    {  
        for(int j=0;j<len1;j++)  
        {  
            ji[i+j]+=a[i]*b[j];  
            ji[i+j+1]+=(ji[i+j]/10);  
            ji[i+j]%=10;  
        }  
    }  
}  
int main()  
{  
    int th=0;  
    cin>>mtion1>>mtion2;  
    int len1=mtion1.size(),len2=mtion2.size();  
    readstring(mtion1,a,len1,th); 
    readstring(mtion2,b,len2,th);  
    th=len1+len2;  
    if(len1<len2) multiplication(ji,b,a,len1,len2);  
    else multiplication(ji,a,b,len2,len1);  
    int whe=1;  
    for(int i=0;i<100;i++) if(ji[i]!=0) whe=0;  
    if(whe) cout<<'0';  
    else {while(!ji[th]) th--;for(int i=th;i>=0;i--) cout<<ji[i];}  
    system("pause");
    return 0;  
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值