zoukankan      html  css  js  c++  java
  • 杭电1047——大数相加

    #include <stdio.h>
    #include <string.h>
    void add(char d1[],char d2[],char sum[])
    {
        int i,j,carry=0,inx,idx1,idx2,t;
        
        inx=0;
        idx1=strlen(d1)-1;
        idx2=strlen(d2)-1;
        
        carry=0;
        while(idx1>=0&&idx2>=0)
        {
            sum[inx++]=(d1[idx1]-'0'+d2[idx2]-'0'+carry)%10+'0';
            carry=(d1[idx1]-'0'+d2[idx2]-'0'+carry)/10;
            idx1--,idx2--;
        }
        while(idx1>=0)
        {
            sum[inx++]=(d1[idx1]-'0'+carry)%10+'0';
            carry=(d1[idx1]-'0'+carry)/10;
            idx1--;
        }
        while(idx2>=0)
        {
            sum[inx++]=(d2[idx2]-'0'+carry)%10+'0';
            carry=(d2[idx2]-'0'+carry)/10;
            idx2--;
        }
        while(carry>0)
        {
            sum[inx++]=carry%10+'0';
            carry=carry/10;
        }        
        sum[inx]='';
        for(i=0,j=strlen(sum)-1;i<j;i++,j--)
        {
            t=sum[i];
            sum[i]=sum[j];
            sum[j]=t;
        }    
        int flag=0;
        for(i=0;i<strlen(sum);i++)
        {
            if(sum[i]!='0')
            {    flag=1;break;}
        }
        if(flag==0) 
            strcpy(sum,"0");         
    }
    void main()
    {
      char sum[1000]={''},ch[1000];
      char data[1000];
      int n;
      scanf("%d",&n);
      while(n--)
      {
          strcpy(sum,"");
          while(scanf("%s",ch)!=EOF&&strcmp(ch,"0")!=0)  
          {          
              if(strlen(ch)>0)
              {
                  if(strlen(sum)==0)
                  {
                      strcpy(sum,ch);
                  }
                  else
                  {
                      strcpy(data,sum);
                      add(data,ch,sum);
                  }
              }
          }
          if(strlen(sum)==0)
                strcpy(sum,"0");
            printf("%s
    ",sum);
          if(n!=0)//注意格式   
            printf("
    ");  
      }    
    }
  • 相关阅读:
    CRC在线计算器
    freemodbus-v1.5.0 源码分析
    图及其实现
    最短路径
    交换排序-------快速排序
    FreeRTOS--删除任务
    Install OE and BitBake
    高端编程之DOM
    timeout使用实例
    使用JS提交表单
  • 原文地址:https://www.cnblogs.com/MarsMercury/p/8167799.html
Copyright © 2011-2022 走看看