第三周程序设计

#include<stdio.h>
#include<string.h>
int add(char * A,char * B,int * re)//定义加法函数,传入字符数组A,B,结果为整型re 再返回一个结果长度的整型
{
	int len1,len2,i,j,max;
	int C[1000],D[1000];
	len1 = strlen(A);
	len2 = strlen(B);
	for(i=len1-1,j=0;i>=0;i--)//对AB进行倒置,并存入CD整型数组中
		C[j++] = A[i]-'0';
	for(i=len2-1,j=0;i>=0;i--)
		D[j++] = B[i]-'0';
	if(len1>len2)   max = len1;//找到最长的数组长度以便于每一位数字都可以运算
	else	max = len2;
	for(i=0;i<max;i++)
	{
		re[i] = re[i]+C[i]+D[i];//re[i]可能有上一次运算会进位,所以需要加1,re[i]可能为0/1
		if(re[i]>9)//若和超过9 此位数-10,下一位+1
		{
			re[i] -= 10;//进位-10
			re[i+1]++;//下一位+1
		}
	}
    if(re[max]==0) return  max;//若最后一个为0说明位数不变
    else  return  max + 1;//若为1  说明结果位数会比最大的加1  类似999+101=1100
}
int main()
{
    int RE[1000]={0},i,len;
	char A[1000],B[1000];
	scanf("%s %s",A,B);
	len = add(A,B,RE);//len为结果的长度
	for(i=len-1;i>=0;i--)
	printf("%d",RE[i]);//倒序输出
}

这次的问题很简单,就是给你两个正整数A和B,请你帮忙计算A+B的运算结果。有点儿不一样的是,这两个正整数可能会很大噢!

输入格式:

输入包括两行,每行一个正整数,分别代表加数A和B(0<A,B≤1e10086)。

输出格式:

输出仅一行,即A+B的运算结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

herry_drj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值