任意長度正整數加法

來源:互聯網
上載者:User

    任意長度加法的實現,沒有考慮負數的情況。

#include <iostream>
#include <stack>
#include <string>

using namespace std;

int inline cti(char c)
{
 return (c - '0');
}

int main()
{
 string a,b,max,min;
 int i, len ,cr ,tmp;
 stack<int> si;
 while(cin >> a >> b)
 {
  max = a.length() > b.length() ?  a : b ;
  min = a.length() > b.length() ?  b : a ;
  len = max.length() - min.length() ;
  cr = 0;
  for( i = min.length() - 1 ; i >= 0 ; i --) {
   tmp = cr + cti(min[i]) + cti(max[len + i]);
   cr = tmp / 10 ;
   si.push(tmp % 10);
  }
  for(i = len - 1 ; i >= 0 ; i --) {
   tmp = cr + cti(max[i]);
   cr = tmp /10;
   si.push(tmp % 10);
  }
  while(cr) {
   si.push(cr % 10);
   cr /= 10;
  }
  while(!si.empty()) {
   cout << si.top() ;
   si.pop();
  }
  cout << endl;

 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.