zoukankan      html  css  js  c++  java
  • 大数减法(C++实现)

    思路:

    和大数加法是一样的,只不过加变成了减。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 const int L=110;
     6 string sub(string a,string b)//只限两个非负整数相加
     7 {
     8 
     9     string ans;
    10     int na[L] = {0};
    11     int nb[L] = {0};
    12     int la = a.size();
    13     int lb = b.size();
    14     //倒序存储
    15     for (int i=0;i<la;i++)
    16     {
    17         na[la-1-i] = a[i]-'0';
    18     }
    19     //倒叙存储
    20     for (int i=0;i<lb;i++)
    21     {
    22         nb[lb-i-1] = b[i]-'0';
    23     }
    24     int lmax = max(la,lb);
    25     //从个位开始相减
    26     for (int i=0;i<lmax;i++)
    27     {
    28         na[i] -= nb[i];
    29         while (na[i]<0)
    30         {
    31             na[i] += 10;
    32             na[i+1]--;
    33         }
    34     }
    35     //处理前置0
    36     while (!na[lmax])
    37         lmax--;
    38     if (lmax<0)
    39         ans = "0";
    40     else {
    41         for (int i = lmax; i >= 0; i--)
    42             ans += na[i] + '0';
    43     }
    44     return ans;
    45 }
    46 int main()
    47 {
    48     string a,b;
    49     while(cin>>a>>b) cout<<sub(a,b)<<endl;
    50     return 0;
    51 }
  • 相关阅读:
    MR架构
    概念词汇
    数仓项目06:DWD层
    Informatic学习总结_day03
    oracle_创建和管理表
    oracle_使用子查询创建表
    oracle数据类型
    文本变语音引擎 ekho
    [LNOI2014]LCA
    POJ 2942 Knights of the Round Table
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/11191659.html
Copyright © 2011-2022 走看看