九度oj 1003

本文提供了一种解决九度OJ中A+B问题的方法,该问题要求计算两个以特定格式给出的大整数之和。通过解析输入字符串,去除逗号和负号,将字符串转换为整数,然后计算并输出结果。

前几天开刷九度oj,准备把做的题都放上,先放1003

 

题目1003:A+B            

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:16923

解决:7029

题目描述:
给定两个整数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

代码如下,主要是处理'-'号和','号
#include <stdio.h>

int toNum(char c[]) {
     int res;
     bool flag = false;
     int i = 1;
     if(c[0] == '-') {
          res = (c[1] - '0');
          flag = true;
          i++;
     }
     else {
          res = c[0] - '0';
     }
     //printf("res is %d\n",res);

     for(; c[i] != '\0'; i++) {
          if(c[i] != ',') {
               res = res * 10 + c[i] - '0';
               //printf("res deidai is %d\n",res);
          }
     }
     //printf("%d\n",res);
     if(flag == true)
          res = res * -1;
     return res;
}

int main() {
    char Ac[12];
    char Bc[12];

    int A,B;
    while(scanf("%s %s",Ac,Bc)!= EOF) {
     A = toNum(Ac);
     B = toNum(Bc);
     int C = A + B;
     printf("%d\n",C);

    }
    return 0;
}

 

转载于:https://www.cnblogs.com/jasonJie/p/5651414.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值