📄 ch0_bigint2.c
字号:
/*
长整数2
author: kk.h
date: 2006.9
http://www.cocoon.org.cn
*/
#include "stdio.h"
char* add(char *b1,char *b2)
{
char *r; char b1i,b2i;
int b1len,b2len,rlen,i1,i2,i,a,t;
b1len=strlen(b1);
b2len=strlen(b2);
if (b1len>b2len)
rlen=b1len+1;
else
rlen=b2len+1;
r=(char*)malloc(rlen+1);
t=0;
i1=b1len-1;i2=b2len-1; i=rlen-1;
while (i1>=0 || i2>=0){
if (i1>=0) b1i=b1[i1]; else b1i='0';
if (i2>=0) b2i=b2[i2]; else b2i='0';
a = b1i+b2i-2*'0'+t;
if (a>=10){
t=1;a=a-10;
}else
t=0;
r[i] = a+'0';
i1--;i2--;i--;
}
if(t>0)
r[0] = '1';
else
r[0] = '0';
r[rlen]='\0';
return r;
}
char* init(char *data)
{
char *bigint;
int i;
bigint = (char*)malloc(strlen(data)+1);
for (i=0;i<strlen(data);i++)
bigint[i] = data[i];
bigint[i]='\0';
return bigint;
}
main()
{
int i;
char *bigint1=NULL,*bigint2=NULL,*r=NULL;
bigint1 = init("23641");
bigint2 = init("62");
r = add(bigint1,bigint2);
for(i=0;i<strlen(r);i++)
printf("%c",r[i]);
free(bigint1); free(bigint2); free(r);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -