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

     
     1 #include <stdio.h>
     2 #include <iostream>
     3 #include <string>
     4 using namespace std;
     5 
     6 string sub(string str1, string str2)
     7 {
     8     string str;
     9     int flag = 0;
    10     if(str1.length() < str2.length() || ((str1.length() == str2.length()) && (str1[1] < str2[1])))
    11     {
    12         flag = 1;
    13         string str = str1;
    14         str1 = str2;
    15         str2 = str;
    16     }
    17     int tmp = str1.length() - str2.length();
    18     int ans = 0;
    19     for(int i = str2.length() - 1; i >= 0;i--)
    20     {
    21         if(str1[tmp + i] < str2[i] + ans)
    22         {
    23             str = char(10 - ans + str1[tmp + i] - str2[i] + '0') + str;
    24             ans = 1;
    25         }
    26         else{
    27             str = char(str1[tmp + i] - ans - str2[i] + '0') + str;
    28             ans = 0;
    29         }
    30     }
    31     for(int i = tmp - 1; i >= 0;i--)
    32     {
    33         if(str1[i] - ans >= '0')
    34         {
    35             str = char(str1[i] - ans) + str;
    36             ans = 0;
    37         }
    38         else{
    39             str = char(str1[i] + 10 - ans) + str;
    40             ans = 1;
    41         }
    42     }
    43     str.erase(0,str.find_first_not_of('0'));
    44     if(flag)
    45         str = '-' + str;
    46     return str;
    47 }
    48 
    49 int main()
    50 {
    51     string str1, str2;
    52     while(cin >> str1 >> str2)
    53     {
    54         cout << sub(str1,str2) << endl;
    55     }
    56     return 0;
    57 }

     两个数均为非负数

  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/jxust-jiege666/p/6603518.html
Copyright © 2011-2022 走看看