<span style="font-size:18px;">#include <iostream>
#include<stdio.h>
#include<string.h>
#define Max 1001
using namespace std;
int maxNum(int x,int y);
int main()
{
char str1[Max],str2[Max];
int n;//这个是输入数据的组数
int i=0,k,j=0;
scanf("%d",&n);
int num=1;
int x = n,index =1;
while(n--){
int m[Max]={0},n[Max]={0},sum[Max]={0};
scanf("%s",str1);
scanf("%s",str2);
//这部分用来对大数相加
//字符串反转且字符串变数字
int lenA=strlen(str1);
int lenB=strlen(str2);
for (i=0;i<lenA;i++)
{
m[i]=str1[lenA-i-1]-'0';
}
for (i=0;i<lenB;i++)
{
n[i]=str2[lenB-i-1]-'0';
}
int len_max = maxNum(lenB,lenA);
k=0;
//位运算
for (i=0;i<len_max;i++)
{
sum[i]=(m[i]+n[i]+k)%10;//得到末位
k=(m[i]+n[i]+k)/10;//得到进位
}
if(k!=0){
sum[len_max] = 1;
}
printf("Case %d:\n",num);
num++;
printf("%s + %s = ",str1,str2);
if(sum[len_max]==1){
printf("1");
}
for (j=len_max-1;j>=0;j--)
{
printf("%d",sum[j]);
}
if(index==x){
printf("\n");
}else{
printf("\n\n");
}
++index;
}
return 0;
}
int maxNum(int x,int y)
{
int z;
return(z=x>y?x:y);
}
</span>
ACM内部函数--数学问题--大数相加
最新推荐文章于 2018-09-22 15:18:34 发布