2019/3/21大整数减法

题目描述:
给出两个200位以内的正数,算出第一个数减第二个数的值(结果为正)。

输入描述:
每组测试数据包括两行,第一行为被减数,第二行为减数。

输出描述:
每组测试数据输出一行,为所求两个整数之差。

样例输入:
987

654

样例输出:
333

#include<iostream>  
#include<cstring>  
#include<string>  
using namespace std;  
int main()  
{  
    char str1[256],str2[256],temp[256];  
    int a[256],b[256],c[256];  
    int lena,lenb,lenc;  
    int i;  
  
    memset(a,0,sizeof(a));  
    memset(b,0,sizeof(b));  
    memset(c,0,sizeof(c));  
  
    while(cin>>str1>>str2){
	
  
    lena=strlen(str1);  
    lenb=strlen(str2);  
   
  
     
  
    for(i=0;i<=lena-1;i++) 
        a[lena-i]=str1[i]-'0';  
    for(i=0;i<=lenb-1;i++) 
        b[lenb-i]=str2[i]-'0';  
  
    i=1;  
    while(i<=lena||i<=lenb)  
    {  
        if(a[i]<b[i])  
        {  
            a[i]+=10; 
            a[i+1]--; 
        }  
        c[i]=a[i]-b[i]; 
        i++;  
    }  
    lenc=i;  
    while((c[lenc]==0)&&(lenc>1))
        lenc--;  
  
    for(i=lenc;i>=1;i--)
        cout<<c[i];  
    cout<<endl; } 
    return 0;  
}  
posted @ 2019-03-21 20:19  Locker伍六七  阅读(100)  评论(0编辑  收藏  举报