CodeUp-问题 B: A+B 主要思路

题目描述
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。

输入
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。

输出
请计算A+B的结果,并以正常形式输出,每组数据占一行。

样例输入 Copy
-234,567,890 123,456,789
1,234 2,345,678
样例输出 Copy
-111111101
2346912
  1. 题意
    每一行两个字符串,返回两字符串的代数和

  2. 思路
    利用循环数组将字符串转换为数字

    a=a*10+str1[i]-'0'; 
    
  3. 代码

    #include<iostream>
    #include<string.h>
    using namespace std; 
    int main(){
          
          
    	int i;
    	long long a,b;
    	char str1[20],str2[20];  //整数AB
    	while(cin>>str1>>str2){
          
          
    		a=b=0;
    		for(i=0;i<strlen(str1);i++){
          
          
    			if(str1[i]>='0'&&str1[i]<='9'){
          
                 //将每一位数字字符转为十进制 
    				a=a*10+str1[i]-'0';         //每有一位数,每循环一次扩大十倍,再末尾加上个位数,字符转为数字 -'0' 
    			}
    		}
    		if(str1[0]=='-') a=-a;             //根据第一位判断是否为负数 
    		for(i=0;i<strlen(str2);i++){
          
          
    			if(str2[i]>='0'&&str2[i]<='9')
    			  b=b*10+str2[i]-'0';
    		}
    		if(str2[0]=='-') b=-b;
    		cout<<a+b<<endl;
    	} 
    	return 0;
    }
    

猜你喜欢

转载自blog.csdn.net/weixin_44549439/article/details/112641462