• 1-6-11:大整数减法


    描述

    求两个大的正整数相减的差。

    输入共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。输出一行,即所求的差。样例输入

    9999999999999999999999999999999999999
    9999999999999

    样例输出

    9999999999999999999999990000000000000
     1 #include <stdio.h>
     2 #include<string.h>
     3 int a[201]={0}, b[201]={0};
     4 int i, ka, kb, k,c,temp,len;
     5 char s[201];
     6 void minus()
     7 {
     8     for(i = 0; i < ka; i++)
     9     {
    10         if(a[i] <b[i])
    11         { 
    12             c=1;  
    13             a[i+1]--;
    14         }
    15     else
    16         c=0;
    17     a[i] = a[i]+c*10 - b[i];
    18     k=ka;
    19     while(a[k-1]==0 && k>0)
    20         k--;
    21     }
    22 }
    23 int main()
    24 {
    25     scanf("%s",s);
    26     k=0;len=strlen(s);
    27     while(k<len)
    28     { 
    29         a[k]=s[k]-'0';
    30         k++;
    31     }
    32     ka=k;
    33     scanf("%s",s);
    34     k=0;len=strlen(s);
    35     while(k<len)
    36     { 
    37         b[k]=s[k]-'0';
    38         k++;
    39     }
    40     kb=k;
    41     if(ka >= kb) k = ka;
    42     else
    43         k = kb;
    44     for(i = 0; i < ka/2; i++)
    45     {
    46         temp=a[i];
    47         a[i]=a[ka-i-1]; 
    48         a[ka-1-i] =temp;
    49     }
    50     for(i = 0; i < kb/2; i++)
    51     {
    52         temp=b[i];
    53         b[i]=b[kb-i-1];
    54         b[kb-1-i] =temp;
    55     }
    56     c=0;
    57     minus();
    58     for(i = k-1; i >= 0; i--)
    59         printf("%d",a[i]);
    60     return 0;
    61 }
  • 相关阅读:
    ubuntu 设置静态ip
    Mysqldump参数大全
    MySQL主从数据库同步
    MySQL的information_schema的介绍
    mysql的REGEXP 和like的详细研究和解释
    查询语句小技巧
    linux 安装软件,卸载软件 等的几种方式
    正则表达式的神秘面纱
    29
    【转载】关于c++中的explicit
  • 原文地址:https://www.cnblogs.com/qianxuejin/p/5859673.html
Copyright © 2020-2023  润新知