对大数的精度处理(4)_两大数相加

来源:互联网 发布:特斯拉知乎 编辑:程序博客网 时间:2024/05/18 11:17

两大数相加,用字符串表示。

求s1+s2=s3.

代码:

#include <stdio.h> #include <string.h>#include<iostream>using namespace std; int  main() {char s1[200],s2[200];    int num1[200]={0},num2[200]={0},len1,len2,i,n,k,c; //数组清零   scanf("%d",&n);  while(n--){scanf("%s",s1);     scanf("%s",s2);//输入两个大数装入字符数组    len1=strlen(s1);     len2=strlen(s2);//获得大数的长度if(len1>len2)k=len1;elsek=len2;    c=k;      for(i=0;i<len1;k--,i++)       num1[k]=s1[len1-1-i]-'0';       for(i=0,k=c;i<len2;k--,i++)       num2[k]=s2[len2-1-i]-'0';//将字符数组的值转为整形数值并装入数组      for(i=c;i>0;i--)   {num1[i]+=num2[i];if(num1[i]>9){          num1[i]=num1[i]-10;        num1[i-1]++; }   }if(num1[0]!=0){  for(i=0;i<=c;i++)  cout<<num1[i];  }  else{  for(i=1;i<=c;i++)  cout<<num1[i];  }       printf("\n");   }     return 0;}

0 0
原创粉丝点击