zoukankan      html  css  js  c++  java
  • 2736 大整数减法

    题目来源:
    http://bailian.openjudge.cn/practice/2736/
    描述
    求两个大的正整数相减的差。
    输入
    共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。
    输出
    一行,即所求的差。
    样例输入
    9999999999999999999999999999999999999
    9999999999999
    样例输出
    9999999999999999999999990000000000000
    题意描述:
    输入两行不超过200位的整数表示被减数a和减数b(a > b)
    计算并输出两大整数的差
    解题思路:
    先把str1和str2逆置
    再一一对应计算,需要借位,结果减一
    最后去掉前导零输出即可
    程序代码:

     1 #include<stdio.h>
     2 const int N=230;
     3 #include<string.h>
     4 void strr(char *str);
     5 int main()
     6 {
     7     char str1[N],str2[N];
     8     int result[N],i,j,l1,l2,l;
     9     while(scanf("%s%s",str1,str2) != EOF)
    10     {
    11         strr(str1);
    12         strr(str2);
    13         l1=strlen(str1);
    14         l2=strlen(str2);
    15         if(l1>=l2)
    16         {
    17             l=l1; 
    18             for(i=l2;i<l;i++)
    19                 str2[i]='0';
    20         }
    21         if(l==1 && str1[0]=='0' && str2[0]=='0')
    22         {
    23             printf("0
    ");
    24             continue;
    25         }
    26 
    27         memset(result,0,sizeof(result));
    28         for(i=0;i<l;i++) {
    29             result[i] += (str1[i]-'0') - (str2[i]-'0');
    30             if(result[i] < 0)
    31             {
    32                 result[i] += 10;
    33                 result[i+1]--;
    34             }
    35         }
    36         
    37         for(i=l;i>=0;i--) {
    38             if(result[i] > 0)
    39             break;
    40         }
    41         for(j=i;j>=1;j--) 
    42             printf("%d",result[j]);
    43         printf("%d
    ",result[0]);
    44     }
    45     return 0;
    46  } 
    47 void strr(char *str)
    48 {
    49     int i,l,t;
    50     l=strlen(str);
    51     for(i=0;i<l/2;i++)
    52     {
    53         t=str[i];
    54         str[i]=str[(l-1)-i];
    55         str[(l-1)-i]=t;
    56     }
    57 }

    错误分析:
    1、注意0 - 0的情况,判断是否为0时与字符‘0’比较

  • 相关阅读:
    Vue生命周期
    事件
    改变this指向
    全屏要素
    微信小程序
    编程心得
    设计模式-单例与实例化
    第五节课 课堂总结
    作业四 分支结构
    课堂总结
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/6883516.html
Copyright © 2011-2022 走看看