【算法筆記】 A+B
http://codeup.hustoj.com/problem.php?cid=100000575&pid=1
題目描述
給定兩個整數(shù)A和B,其表示形式是:從個位開始,每三位數(shù)用逗號","隔開。
現(xiàn)在請計算A+B的結(jié)果,并以正常形式輸出。
輸入
輸入包含多組數(shù)據(jù)數(shù)據(jù),每組數(shù)據(jù)占一行,由兩個整數(shù)A和B組成(-10^9 < A,B < 10^9)。
輸出
請計算A+B的結(jié)果,并以正常形式輸出,每組數(shù)據(jù)占一行。
樣例輸入?
-234,567,890 123,456,789 1,234 2,345,678
樣例輸出?
-111111101 2346912
*********************************************************************************************************
/*思路:
輸入時,有數(shù)字和“,”,考慮用數(shù)組,再將char型的數(shù)字轉(zhuǎn)換成整型。通過翻閱資料
很容易可以找出如何將char轉(zhuǎn)換成int,例如:'9'-'0'就是數(shù)字9,以此類推,遍歷數(shù)組
A[0]>='0'&&A[0]<='9',再把遍歷到的char型的數(shù)字轉(zhuǎn)換成int型數(shù)字,最后再判斷正負。?
*/
#include<stdio.h>
#include<string.h>
#define N 1000
int main(){
char A[N];//接收讀入的兩組數(shù)據(jù)用的數(shù)組?
char B[N];
while(scanf("%s %s",A,B)!=EOF){
int a=strlen(A);//計算數(shù)組長度,方便后面遍歷?
int b=strlen(B);
int NewAa=0;//用來接收由char轉(zhuǎn)換成int的數(shù)據(jù)?
int NewBb=0;
for(int i=0;i<a;i++){
if(A[i]>='0'&&A[i]<='9'){//遍歷數(shù)組中'1'-'9'的字符?
NewAa=NewAa*10+(A[i]-'0');//char型數(shù)字轉(zhuǎn)換成int型數(shù)字?
}
}
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;
}