#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define STRLENTH 100
void reverse(char str[])
{
int left = 0;
int right = strlen(str)-1;
char temp;
while(left < right)
{
temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
}
char* big_num_add(char str1[],char str2[])
{
int n1 = strlen(str1);
int n2 = strlen(str2);
int n = n1>n2 ? n1:n2;
int i = 0;
int flag = 0;
char sum ;
char *str3;
str3 = (char*)malloc(sizeof(char)*(n+2));
n1--;
n2--;
while(n1 >= 0 && n2 >= 0)
{
sum = str1[n1] + str2[n2] + flag - '0';
if(sum > '9')
{
str3[i] = sum - 10;
flag = 1;
}
else
{
str3[i] = sum;
flag = 0;
}
n1--;
n2--;
i++;
}
if(n1 > n2)
{
while(n1 >= 0)
{
sum = str1[n1] + flag ;
if(sum > '9')
{
str3[i] = sum - 10;
flag = 1;
}
else
{
str3[i] = sum;
flag = 0;
}
n1--;
i++;
}
}
if(n2 > n1)
{
while(n2 >= 0)
{
sum = str2[n2] + flag ;
if(sum > '9')
{
str3[i] = sum - 10;
flag = 1;
}
else
{
str3[i] = sum;
flag = 0;
}
n2--;
i++;
}
}
if(flag == 1)
{
str3[i] = '1';
i++;
str3[i] = '\0';
}
else
str3[i] = '\0';
reverse(str3);
return str3;
}
int main()
{
char add1[STRLENTH];
char add2[STRLENTH];
gets(add1);
gets(add2);
printf("the sum is:%s\n",big_num_add(add1,add2));
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现