1. 程式人生 > >九度OJ 1003:A+B

九度OJ 1003:A+B

時間限制:1 秒

記憶體限制:32 兆

特殊判題:

提交:15078

解決:6299

題目描述:
給定兩個整數A和B,其表示形式是:從個位開始,每三位數用逗號","隔開。
現在請計算A+B的結果,並以正常形式輸出。
輸入:
輸入包含多組資料資料,每組資料佔一行,由兩個整數A和B組成(-10^9 < A,B < 10^9)。
輸出:
請計算A+B的結果,並以正常形式輸出,每組資料佔一行。
樣例輸入:
-234,567,890 123,456,789
1,234 2,345,678
樣例輸出:
-111111101
2346912

思路:

需要用字串讀取資料,同時要注意和的範圍可能超出int表示範圍,所以建議用字串或long long表示。

程式碼:

#include <stdio.h>
#include <string.h>
 
int praseStr(char s[20])
{
    int a = 0;
    int i;
    for (i=0; i<strlen(s); i++)
    {
        if(s[i] == '-' || s[i] == ',')
            continue;
        a = a*10 + s[i]-48;
    }
    if(s[0] == '-')
        a = -a;
    //printf("%d\n", a);
    return a;
}
 
 
int main(void)
{
    char sa[20], sb[20];
    int a, b;
 
    while (scanf("%s%s", sa, sb) != EOF)
    {
        a = praseStr(sa);
        b = praseStr(sb);
        printf("%d\n", a+b);
    }
 
    return 0;
}
/**************************************************************
    Problem: 1003
    User: liangrx06
    Language: C
    Result: Accepted
    Time:0 ms
    Memory:912 kb
****************************************************************/