程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> a+b (九度oj 題目60)

a+b (九度oj 題目60)

編輯:C++入門知識

前言 這個周末感冒,一直沒寫程序,拿到題練習一下,我很奇怪的是這道題只能用全局數組,傳參總會出問題,gdb沒有調試出來,太詭異了   題目 [html]   題目描述:   實現一個加法器,使其能夠輸出a+b的值。   輸入:   輸入包括兩個數a和b,其中a和b的位數不超過1000位。   輸出:   可能有多組測試數據,對於每組數據,   輸出a+b的值。   樣例輸入:   2 6   10000000000000000000 10000000000000000000000000000000   樣例輸出:   8   10000000000010000000000000000000     ac代碼 [cpp]   #include <stdio.h>   #include <stdlib.h>   #include <string.h>       #define MAX 1002           char a[MAX], b[MAX], sum[MAX];       void bigDataPlus();       int main()   {       while(scanf("%s %s", a, b) != EOF)       {           bigDataPlus();           printf("%s\n", sum);       }           return 0;   }           void bigDataPlus()   {       int i, j, k, c, len_a, len_b;           //初始化       memset(sum, 0, sizeof(sum));       len_a = strlen(a);       len_b = strlen(b);               //進位標識       c = 0;           for(i = len_a - 1, j = len_b - 1, k = 0; i >=0 && j >= 0; i --, j --, k ++)       {           sum[k] = a[i] + b[j] + c - '0';                       if(sum[k] > '9')           {               c = 1;               sum[k] -= 10;           }else           {               c = 0;           }       }               //a > b       while(i >= 0)       {           sum[k] = a[i] + c;           if(sum[k] > '9')           {               sum[k] -= 10;               c = 1;           }else           {               c = 0;           }           k ++;           i --;       }           //b > a       while(j >= 0)       {           sum[k] = b[j] + c;           if(sum[k] > '9')           {               sum[k] -= 10;               c = 1;           }else           {               c = 0;           }           k ++;           j --;       }               //最後是否有進位的情況       if(c == 1)       {           sum[k ++] = '1';       }           //翻轉       char temp;       for(i = 0, j = k - 1; i < j; i ++, j --)       {           temp = sum[i];           sum[i] = sum[j];           sum[j] = temp;       }       }   /**************************************************************      Problem: 1198      User: wangzhengyi      Language: C      Result: Accepted      Time:30 ms      Memory:912 kb  ****************************************************************/    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved