【算法笔记】 A+B
http://codeup.hustoj.com/problem.php?cid=100000575&pid=1
题目描述
给定两个整数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
*********************************************************************************************************
/*思路:
输入时,有数字和“,”,考虑用数组,再将char型的数字转换成整型。通过翻阅资料
很容易可以找出如何将char转换成int,例如:'9'-'0'就是数字9,以此类推,遍历数组
A[0]>='0'&&A[0]<='9',再把遍历到的char型的数字转换成int型数字,最后再判断正负。
*/
#include<stdio.h>
#include<string.h>
#define N 1000
int main(){
char A[N];//接收读入的两组数据用的数组
char B[N];
while(scanf("%s %s",A,B)!=EOF){
int a=strlen(A);//计算数组长度,方便后面遍历
int b=strlen(B);
int NewAa=0;//用来接收由char转换成int的数据
int NewBb=0;
for(int i=0;i<a;i++){
if(A[i]>='0'&&A[i]<='9'){//遍历数组中'1'-'9'的字符
NewAa=NewAa*10+(A[i]-'0');//char型数字转换成int型数字
}
}
if(A[0]=='-') NewAa=-NewAa;//正负号的判断
//同理:
for(int i=0;i<b;i++){
if(B[i]>='0'&&B[i]<='9'){
NewBb=NewBb*10+(B[i]-'0');
}
}
if(B[0]=='-') NewBb=-NewBb;
printf("%d\n",NewAa+NewBb);
}
return 0;
}