九度OJ 1003:A+B
- 题目描述:
- 
给定两个整数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
****************************************************************/
    编程算法爱好者。
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号