本文已参与「新人创作礼」活动.一起开启掘金创作之路。
作为再一次吃螃蟹不客气的天才,人狠话不多,想实现什么跟我说。于是咱们不废话了,直接开整。这次实现的是比cpp快100%的大数加法,纯char实现很牛币的。
#include<stdio.h>
#include<stdlib.h>
char*BigPlus(const char*m,const char*n){
if(m[0]==0||n[0]==0)return NULL;
int i=0,l=0,z=0,x,y;
char*j=(char*)calloc(999,sizeof(char));
while(m[++i]);while(n[++l]);y=x=i>l?i:l;
while(y>z){
if(i)j[y]+=m[--i];if(l)j[y]+=n[--l];
if(j[y]>0x69){
j[y-1]+=1;j[y]%=0x3a;
if(y==1)j[0]=0x31,--z;
}else if(j[y]>0x5f){
j[y]-=0x30;
}else if(j[y]>0x39){
j[0]=0x31,--z;j[y]-=0xa;
}--y;
}
if(!z){while(i<x)j[i]=j[i+1],++i;j[i]=0;}
return j;
}//最高性能大数加法
int main(){
char m[998],n[998];scanf("%s %s",m,n);
char*r=BigPlus(m,n);printf("%s",r);free(r);
return 0;
}//老铁请双击留言+关注,或者三连,点赞收藏加关注最强牛逼无敌程序员本人