语法:add(char a[],char b[],char s[]);
参数:
a[]: 被乘数,用字符串表示,位数不限
b[]: 乘数,用字符串表示,位数不限
t[]: 结果,用字符串表示
返回值: null
注意:
空间复杂度为 o(n^2)
需要 string.h
源程序:
#include <iostream>
#include <string.h>
using namespace std;
void add(char a[],char b[],char back[])
{
int i,j,k,up,x,y,z,l;
char *c;
if(strlen(a)>strlen(b))
l=strlen(a)+2;
else
l=strlen(b)+2;
c=(char *) malloc(l*sizeof(char));
i=strlen(a)-1;
j=strlen(b)-1;
k=0;up=0;
while(i>=0||j>=0)
{
if(i<0)
x='0';
else
x=a[i];
if(j<0)
y='0';
else
y=b[j];
z=x-'0'+y-'0';
if(up)
z+=1;
if(z>9)
{
up=1;
z%=10;
}
else
up=0;
c[k++]=z+'0';
i--;
j--;
}
if(up)
c[k++]='1';
i=0;
c[k]='\0';
for(k-=1;k>=0;k--)
back[i++]=c[k];
back[i]='\0';
}
void add(char a[],char b[],char back[]);
int main()
{
char a[100];
char b[100];
char back[100];
cout<<"请输入两个大数:"<<endl;
cin>>a>>b;
add(a,b,back);
cout<<"大数相加结果是:"<<back<<endl;
return 0;
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有