加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数相减(A -B)(A>B)

发布时间:2020-12-14 03:07:18 所属栏目:大数据 来源:网络整理
导读:#includecstdio#includestring.h#includemalloc.h#includestdlib.h#define M 100000int main(){ int T; scanf("%d",T); while(T--) { char *a,*b; a=(char*)malloc(sizeof(char)*M); b=(char*)malloc(sizeof(char)*M); scanf("%s%s",a,b); int i,j,alen,blen

 
#include<cstdio>
#include<string.h>
#include<malloc.h>
#include<stdlib.h>
#define M 100000
int main()
{
 int  T;
 scanf("%d",&T);
 while(T--)
 {
    char *a,*b;
    a=(char*)malloc(sizeof(char)*M);
    b=(char*)malloc(sizeof(char)*M);
    
    scanf("%s%s",a,b);
    int i,j,alen,blen;
    alen=strlen(a);
    blen=strlen(b);
   
   int *aa,*bb;  
    aa=(int*)malloc(sizeof(int)*alen);
    bb=(int*)malloc(sizeof(int)*alen);
    for(i=0;i<alen;i++)
     aa[i]=bb[i]=0; 
     
    for(i=alen-1,j=0;i>=0;i--,j++)
     aa[j]=a[i]-'0';
    for(i=blen-1,j++)
      bb[j]=b[i]-'0';
       
  
    int *c;
    c=(int*)malloc(sizeof(int)*alen);
    for(i=0;i<alen;i++)
      c[i]=0;
      
    for(i=0;i<alen;i++)//此种与下面注释1的相同 
      c[i]=aa[i]-bb[i];//注意此处不是c[i]=a[i]-b[i];无意义 
      
      for(i=0;i<alen;i++)
      {
    //c[i]+=aa[i]-bb[i];//注释1
    //{if(c[alen-1]<1)//这种格式与下面的这种注释2{}相对应 
        //alen-=1;} 
    if(c[i]<0)
         {
          c[i]+=10;
          c[i+1]-=1;
         }
       
      }
   
    for(i=alen-1;i>=0&&c[i]==0;i--)
       ;
       if(i>=0)
         for(;i>=0;i--)
        printf("%d",c[i]);
        else
          printf("0");
        printf("n");
      /*{
    for(i=alen-1;i>=0;i--)//注释2 
      printf("%d",c[i]);
      printf("n");
      } */
    
    free(a);
        free(b);
        free(aa);
        free(bb);
        free(c);
 }
 return 0;
}
/*
void dele(char *a,char *b)//假设alen>beln 
{
 if(a==NULL||b==NULL)
   return ;
 int i,blen;
 int lmax,lmin,p=0;
    alen=strlen(a);
    blen=strlen(b);
    
   int *aa,*bb;  
    aa=(int*)malloc(sizeof(int)*alen);
    bb=(int*)malloc(sizeof(int)*alen);
    for(i=0;i<alen;i++)
     aa[i]=bb[i]=0; 
 
    for(i=alen-1,j++)
      bb[j]=b[i]-'0';
       
  
    int *c;
    c=(int*)malloc(sizeof(int)*alen);
    for(i=0;i<alen;i++)
      c[i]=0;
      
    for(i=0;i<alen;i++)//此种与下面注释1的相同 //去0输出
     c[i]=aa[i]-bb[i];
      
      for(i=0;i<alen;i++)
      {
    //c[i]+=aa[i]-bb[i];//注释1 
    //{if(c[alen-1]<1)//这种格式最后的输出与下面的注释2{}相对应 
         //alen-=1; }
    if(c[i]<0)
         {
          c[i]=c[i]+10;
          c[i+1]=c[i+1]-1;
         }
       
      }
    
     for(i=alen-1;i>=0&&c[i]==0;i--)
       ;
       if(i>=0)
         for(;i>=0;i--)
        printf("%d",c[i]);
        else
          printf("0");
       printf("n");
      //{for(i=alen-1;i>=0;i--)//注释2 
      //printf("%d",c[i]);
     // printf("n");}   
        
     free(aa);
     free(bb);
     free(c);        
}
int main()
{
 int T;
 scanf("%d",&T);
 while(T--)
 {
  char *a,*b;
    a=(char*)malloc(sizeof(char)*M);
    b=(char*)malloc(sizeof(char)*M);
    scanf("%s%s",b);
    dele(a,b);
    free(a);
    free(b);
 }
 return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读