A+B(while和if搞混了...)

来源:互联网 发布:hfss微带线端口 编辑:程序博客网 时间:2024/06/06 00:54

问题 B: A+B

时间限制: 1 Sec  内存限制: 32 MB
献花: 98  解决: 76
[献花][花圈][TK题库]

题目描述

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

输入

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

输出

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

样例输入

-234,567,890 123,456,7891,234 2,345,678

样例输出

-1111111012346912
#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<cstdlib>using namespace std;int change(char *a){int n=0;n=strlen(a);int sum=0;for(int i=n-1;i>=0;i--){int k=0;k=*(a+i)-'0';sum+=k*pow(10,n-i-1);}return sum;}int main(){//char a[50]={};//char b[50]={};char *t1;char *t2;t1=(char*)malloc(50*sizeof(char));t2=(char*)malloc(50*sizeof(char));while(scanf("%s%s",t1,t2)!=EOF){int n=0,m=0;n=strlen(t1);m=strlen(t2);//char c[50]={};//char d[50]={};char *k1;char *k2;k1=(char*)malloc(50*sizeof(char));k2=(char*)malloc(50*sizeof(char));int j=0;for(int i=0;i<n;i++){if((*(t1+i)<='9')&&(*(t1+i)>='0')){*(k1+j)=*(t1+i);j++;}}*(k1+j)='\0';int a1=0;a1=change(k1);int k=0;for(int t=0;t<m;t++){if((*(t2+t)<='9')&&(*(t2+t)>='0')){*(k2+k)=*(t2+t);k++;}}*(k2+k)='\0';int b1=0;b1=change(k2);if(*t1=='-'&&*t2!='-'){cout<<b1-a1<<endl;}else if(*t1=='-'&&*t2=='-'){cout<<'-'<<a1+b1<<endl;}else if(*t1!='-'&&*t2!='-'){cout<<b1+a1<<endl;}else if(*t1!='-'&&*t2=='-'){cout<<a1-b1<<endl;}}//cin.get();return 0;}

阅读全文
0 0
原创粉丝点击