• 1-6-10:大整数加法


    描述

    求两个不超过200位的非负整数的和。

    输入有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入

    22222222222222222222
    33333333333333333333

    样例输出

    55555555555555555555
     1 #include <stdio.h>
     2 #include<string.h>
     3 int a[1001]={0}, b[1001]={0};
     4 int i, ka, kb, k,c,temp,len;
     5 char s[2002],ch;
     6 void plus()
     7 {
     8     for(i = 0; i < k; i++)
     9     {
    10         a[i] = a[i] + b[i] + c;
    11         if (a[i]>=10)
    12         {a[i]= a[i]%10; c=1;}    
    13         else c=0;
    14     }
    15     if(c>0) {a[k]=c; k++;}
    16 }
    17 int main()
    18 {
    19     scanf("%s",s);
    20     k=0;len=strlen(s);
    21     while(k<len)
    22     { 
    23         a[k]=s[k]-'0';
    24         k++;
    25     }
    26     ka=k;
    27     scanf("%s",s);
    28     k=0;len=strlen(s);
    29     while(k<len)
    30     { 
    31         b[k]=s[k]-'0';
    32         k++;
    33     }
    34     kb=k;
    35     if(ka >= kb) k = ka;
    36     else
    37         k = kb;
    38     for(i = 0; i < ka/2; i++)
    39     {
    40         temp=a[i];
    41         a[i]=a[ka-i-1]; 
    42         a[ka-1-i] =temp;
    43     }
    44     for(i = 0; i < kb/2; i++)
    45     {
    46         temp=b[i];
    47         b[i]=b[kb-i-1];
    48         b[kb-1-i] =temp;
    49     }
    50     c=0;
    51     plus();
    52     for(i = k-1; i >= 0; i--)
    53     printf("%d",a[i]);       
    54     return 0;
    55 }//只对了九个..

  • 相关阅读:
    【LeetCode】- Valid Palindrome(右回文)
    高榕资本宾悦:未使用的企业家Testin云测试服务类故障
    2015第17周三专注
    2015第17周二
    2015第17周一
    2015第16周日
    2015第16周六学习java建议
    2015第16周五
    2015第16周四自控力
    2015第16周三知道做到
  • 原文地址:https://www.cnblogs.com/qianxuejin/p/5859695.html
Copyright © 2020-2023  润新知