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

大数减法

发布时间:2020-12-14 03:33:38 所属栏目:大数据 来源:网络整理
导读:#include cstdio #include cstring #include iostream #define maxn 107 using namespace std; char a[maxn],b[maxn];//接受输入的字符串 int ta[maxn],tb[maxn];//倒序记录输入的字符串 int main() { ????int i,t; ????int len1,len2; ????scanf("%d",t); ?
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <iostream>
  4. #define maxn 107
  5. using namespace std;
  6. char a[maxn],b[maxn];//接受输入的字符串
  7. int ta[maxn],tb[maxn];//倒序记录输入的字符串
  8. int main()
  9. {
  10. ????int i,t;
  11. ????int len1,len2;
  12. ????scanf("%d",&t);
  13. ????while (t--)
  14. ????{
  15. ????????//注意要请0
  16. ????????memset(ta,sizeof(ta));
  17. ????????memset(tb,sizeof(tb));
  18. ????????scanf("%s%s",a,b);
  19. ????????len1 = strlen(a);
  20. ????????len2 = strlen(b);
  21. ????????int len = max(len1,len2);
  22. ????????//两个数组统一宽度,倒序记录在ta,tb中,多出的0补上
  23. ????????for (i = 0; i < len; ++i)
  24. ????????{
  25. ????????????if (len1 - 1 >= 0)
  26. ????????????{
  27. ????????????????ta[i] = a[len1 - 1] - '0';
  28. ????????????????len1--;
  29. ????????????}
  30. ????????????else ta[i] = 0;
  31. ????????????if (len2 - 1 >= 0)
  32. ????????????????tb[i] = b[len2 -??1] - '0';
  33. ????????????????len2--;
  34. ????????????else tb[i] = 0;
  35. ????????}
  36. ????????//模拟加法的过程
  37. ????????????ta[i] = ta[i] - tb[i];
  38. ????????????if (ta[i] < 0)
  39. ????????????????ta[i + 1] -= 1;
  40. ????????????????ta[i] += 10;
  41. ????????bool flag = false;
  42. ????????//false表示前边还没有出现1-9的数,true表示前边出现了1-9的数字
  43. ????????//可以处理多余的前导0
  44. ????????for (i = len; i >= 0; --i)
  45. ????????????if (flag || ta[i])
  46. ????????????????flag = true;
  47. ????????????????printf("%d",ta[i]);
  48. ????????if (!flag) printf("0");
  49. ????????printf("n");
  50. ????}
  51. ????return 0;
  52. }

(编辑:李大同)

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

    推荐文章
      热点阅读