算法收集系列

来源:互联网 发布:淘宝网一次性丁腈手套 编辑:程序博客网 时间:2024/06/06 10:59
  1. 实现一个加法器,保证两个加数是任意长的整数。
  2. #include <iostream>   
  3. #include <string>   
  4. using namespace std;  
  5. string Addition(string one, string two);  
  6. int main()  
  7. {  
  8.     int n, i;  
  9.     string first, second;  
  10.     cout << "Please enter two numbers: ";  
  11.     cin >> first >> second;  
  12.     cout << "The result is: " << Addition(first, second) << endl;  
  13.     //return 0;   
  14.     system("pause");  
  15. }  
  16. string Addition(string one, string two)  
  17. {  
  18.     int j, max;  
  19.     //分别表示第一,二个字符串的长度   
  20.     int flen, slen;  
  21.     string sum;  
  22.     flen = one.size();  
  23.     slen = two.size();  
  24.     if(flen >= slen)  
  25.     {  
  26.         sum = one;  
  27.         for(j=0;j<slen;j++)  
  28.             sum[flen-j-1] = sum[flen-j-1] + two[slen-j-1] - '0';  
  29.         max = flen;  
  30.     }  
  31.     else  
  32.     {  
  33.         sum = two;  
  34.         for(j=0;j<flen;j++)  
  35.             sum[slen-j-1] = sum[slen-j-1] + one[flen-j-1] - '0';  
  36.         max = slen;  
  37.     }  
  38.     //如果第j位的数大于9,则将其减10,并向上一位进一  
  39.     for(j=max-1;j>=1;j--)  
  40.     {  
  41.         if(sum[j] > '9')  
  42.         {  
  43.             sum[j] -= 10;  
  44.             sum[j-1]++;  
  45.         }  
  46.     }  
  47.     if(sum[0] > '9')  
  48.     {  
  49.         sum[0] -= 10;  
  50.         sum = "1" + sum;  
  51.     }  
  52.     return sum;  
  53. }  
原创粉丝点击