ACM大数相加

来源:互联网 发布:java女生好找工作吗 编辑:程序博客网 时间:2024/06/03 18:51
#include<iostream>#include<string.h>using namespace std;//定义MAX_SIZE#define MAX_SIZE 200//定义两个char[]来存放输入的string类型char charArrOne[MAX_SIZE+10];char charArrTwo[MAX_SIZE+10];int intArrOne[MAX_SIZE+10];int intArrTwo[MAX_SIZE+10];//定义两个int[]来存放最后的结果int main(){int num1,num2;//输入两个参数while(scanf("%s %s",charArrOne,charArrTwo)){//char[]到int[]cout<<charArrOne<<endl;cout<<charArrTwo<<endl;//cout<<strlen(charArrOne)<<endl;输出的结果就是等于实际的位数memset(intArrOne,0,sizeof(intArrOne));memset(intArrTwo,0,sizeof(intArrTwo));for(int i=strlen(charArrOne)-1,j=0;i>=0;i--,j++){intArrOne[j]=charArrOne[i]-'0';//这一边的  -‘0’不能忘记或者是用map映射过去也是相同的}for(int i=strlen(charArrTwo)-1,j=0;i>=0;i--,j++){intArrTwo[j]=charArrTwo[i]-'0';}//计算,进位for(int i=0;i<MAX_SIZE;i++){intArrOne[i]+=intArrTwo[i];if(intArrOne[i]>=10){intArrOne[i]=intArrOne[i]-10;intArrOne[i+1]+=1;}}//最终结果的输出(后面的一大串0不用输出)int flag=false;for(int i=MAX_SIZE;i>=0;i--){if(flag){cout<<intArrOne[i];}else if(intArrOne[i]!=0){cout<<intArrOne[i];flag=true;}}cout<<endl;}}


0 0
原创粉丝点击