二十进制的加法

保姆级教程:在Ubuntu 22.04上用Conda搞定nuPlan数据集环境(Python 3.9 + PyTorch) 本文提供了一份详细的Ubuntu 22.04环境下使用Conda配置nuPlan自动驾驶数据集的保姆级教程,涵盖Python 3.9安装、Conda环境管理、PyTorch配置及数据集可视化验证等关键步骤,帮助开发者高效搭建开发环境。 阅读详情
题目描述:


        在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。                

       分析:在第一眼看到这道题的时候,我相信你也会有一个思路:从两字符的右端开始操作,并且每次都将相应的字符转化为十进制后再相加,如果有进位就将进位1加到下一位高位上,最后再将得到的额十进制结果转化为字符存储起来。当我们将所有数加完之后,你也许会发现,假如最高位有进位,那怎么办呢?这个问题还是要解决的,而且不难解决,只要我们将保存结果的字符数组声明比输入两个数的长度最长的那个长度+1就可。最终判断最高位是否溢出,如果溢出,那么就将最高位设置为字符1,否则,则将最高为去掉后再返回地址在输出。本人就根据这个思路把代码实现了,但是由于初出茅庐,代码质量不是很好,请见谅。注释只注释前一部分,因为后一部分和前面的大致一样意思。

算法实现:

char* calculate(char* x, char* y)
{
	int tempx, tempy,site,cf=0;//定义临时x,y以及标志site,是否有进位cf
	int i,clen,lenx,leny,len;//clen为两字符长度差
	char *sum;//存放结果
	//x、y的长度
	lenx = strlen(x);
	leny = strlen(y);
	//判断x、y的长度
	if (lenx>leny)
	{
		site = 1;
		clen = lenx - leny;
		len = lenx;
	}
	else
	{
		site = 0;
		clen = leny - lenx;
		len = leny;
	}

	sum = (char *)malloc((len+1) * sizeof(char));
	memset(sum, 0, sizeof(sum));
	//从字符后面算起,即低位算起
	for (i = len - 1; i >=0; i--)
	{
		if (site==1)//如果x比y的长度长
		{
			//字符转为十进制
			if (x[i]<='9')
			{
				tempx=x[i] - '0';
				tempy = 0;
			}
			else
			{
				tempx = x[i] - 87;
				tempy = 0;
			}
			if (i >= clen)//将字符短的y停止,因为y已算完
			{
				if (y[i - clen] <= '9')
				{
					tempy = y[i - clen] - '0';
				}
				else
				{
					tempy = y[i - clen] - 87;
				}
			}
			//转化为二十进制,保存结果
			if (cf + tempx + tempy>=20)//该位置的和大于等于20,则有进位
			{
				if (cf + tempx + tempy>29)
				{
					sum[i+1] = cf + tempx + tempy + 67;
				}
				else
				{
					sum[i + 1] = cf + tempx + tempy + 28;
				}
				cf = 1;
			}
			else
			{
				if (cf + tempx + tempy > 9)
				{
					sum[i + 1] = cf + tempx + tempy + 87;
				}
				else
				{
					sum[i + 1] = cf + tempx + tempy + 48;
				}
				cf = 0;
			}
		}
		else//如果x比y的长度短
		{
			if (y[i]<='9')
			{
				tempy = y[i] - '0';
				tempx = 0;
			}
			else
			{
				tempy = y[i] - 87;
				tempx = 0;
			}


			if (i >= clen)
			{
			   if (x[i - clen] <= '9')
			   {
				   tempx = x[i - clen] - '0';
			   }
			   else
			   {
				   tempx = x[i - clen] - 87;
			   }
			}

			if (cf+tempx + tempy>=20)
			{
				if (cf+tempx + tempy>29)
				{
					sum[i + 1] = cf + tempx + tempy + 67;
				}
				else
				{
					sum[i + 1] = cf + tempx + tempy + 28;
				}
				cf = 1;
			}
			else
			{
				if (cf+tempx + tempy > 9)
				{
					sum[i + 1] = cf + tempx + tempy + 87;
					int aaaa = 0;
				}
				else
				{
					sum[i + 1] = cf + tempx + tempy + 48;
				}
				cf = 0;
			}
		}
	}
	if (cf==1)
	{
		sum[0] = 49;
	}
	else
	{
		sum++;
	}
	return  sum;
}



LVI-SAM实战:如何在Ubuntu20.04上快速复现激光-视觉-惯性里程计系统 本文详细解析了在Ubuntu 20.04环境下部署和优化LVI-SAM激光-视觉-惯性里程计系统的全流程。从环境配置、依赖安装到源码编译和实战调参,提供了完整的解决方案和性能优化策略,帮助开发者快速实现厘米级精度的实时位姿估计。 阅读详情

相关推荐

Eclipse 数据空间组件(EDC)项目介绍

在当今数字经济的背景下,数据成为了新的“石油”。但与石油不同的是,数据可以无限共享且再生。然而,如何在保持数据主权的前提下实现高效、安全的数据共享,成为了企业和组织面临的主要挑战。这时,**Eclipse 数据空间组件(Eclipse Dataspace Components, EDC)**应运而生,它为企业在多方参与的数据交换中提供了一个标准化、可扩展的解决方案。数据空间不仅是一个多组织间的数据共享协议,还是一套支撑这些协议运行的技术基础设施。

m0_74331272的博客 4601

二十进制的两数相加

喜闻乐见的a+b Description 喜闻乐见的a+b来了,当然二进制,八进制,十进制什么的估计你们也懒得写了,来个20进制的a+b Input 给出多组a和b,每个数字一行 数字由0~9和小写字母a~j(10~19) 给出的长度不超过100 Output 每组数据输出a+b的和。 Sample Input 1234567890 abcdefghij...

weixin_30384217的博客 199

相衬成像介绍

相衬成像介绍

qq_41981768的博客 2913

"二十进制数加法"

题目: 在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。  分析: a、b两个字符串分别用来存储两个二十进制数; a、b长度可能不同,用一个长度比a、b中长度最大值大1的字符串sum存储结果;

278674128的专栏 869

全网最全医学图像数据汇总

本仓库汇总了多个领域的医学图像开源数据集,涵盖CT、MRI、超声、内窥镜、病理、多模态、PET、OCT以及皮肤镜等多种成像技术。每个数据集均详细列出了任务类型、部位、格式、数量及下载链接,旨在为医学图像研究者提供便捷的资源导航。⚠️:这些数据集仅适用于学术研究用途。

2401_83173765的博客 3319

Aruco标签定位、测距、三维位置估算 opencv应用

摄像头要一开始对准aruco标签才开始运行。+ 相机标定文件(参考我的上篇文章)+ aruco标签6*6。

dgut_guangdian的博客 4223

二十进制数的加法--【英雄会】

今天晚上看到群里面交流的信息,发现又出新题了,看了一下,难度还可以,是一般性的题目。事实如此,大家一说简单,一会儿就由三星难度降为二星了...题目不少,有兴趣的朋友们可以去英雄会...... 如题: 在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制)...

xidajiancun 249

DFT设计绪论

DFT设计的主要目的是为了将defect-free的芯片交给客户。 产品质量,通常使用Parts Per million(PPM)来衡量。 但是随着IC从SSI到VLSI的发展,在test上花销的时间越来越多,test的quality却很难提高,这使得DFT的engineer不断的发展着DFT的技术。 DFT engineer面对的第一个问题是设计内部的状态的可测试性问题。在...

ahr7882的博客 1195

二十进制加法、乘法表

使用上述的20进制加法、乘法表,可以进行以下的计算:265 * 89 = JAG5

hlp_0827的博客 4280

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

【MT7628】固件开发-SDK4320添加MT7612E WiFi驱动操作说明

wgl307293845的博客 2080

uniapp - 解决App端(安卓/苹果)使用uni.openlocation跳转第三方高德地图白屏问题,安卓苹果ios平台使用应用内置地图查看位置打不开,打包后App高德地图页面白屏不显示的问题!

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,高德地图白屏,uniapp调用内置高德地图白屏,uniApp使用uni.openlocation空白不显示地图,uniappapp端如何解决openlocation地图不显示问题,打开第三方地图显示位置地图没反应,uni.openlocation跳转第三方高德地图,APP端白屏问题,使用uni.openlocation跳转到第三方导航软件的时候,app端跳转的是高德地图,但是白屏没有反应,打包发布后白

🏆 前端领域优质创作者 1万+

二十进制数的加法

优快云编程挑战里的题目 在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。 可惜我提交了6次才正...

chuifuhuo6864的博客 153

RK3568平台(内存篇)DDR定频修改

如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。

weixin_49303682的博客 1623

【英雄会】二十进制数的加法

二十进制数的加法 题目详情: 在二十进制中,我们除了使用数字0-9以外,还使用字母a-j(表示10-19),给定两个二十进制整数,求它们的和。 输入是两个二十进制整数,且都大于0,不超过100位; 输出是它们的和(二十进制),且不包含首0。我们用字符串来表示二十进制整数。 答题说明: main函数可不用完成。 算法实现: using

德瑞雨的专栏 847

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

csdn英雄会(pongo)题解之二十进制数的加法

10号EAST要开始通电准备实验了,所以比较忙,今天看到出新题,而且很简单,就敲了下代码。还有AB数和前两天的回文数没有写题解,打算这周末补上。 ---------------------------------------------------分割线---------------------------------------------- 题目详情: 在二十进制中,

enockipp的小'码'头 1065

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

优快云编程题目二十进制数的加法

今天看了优快云上的编程题目,自己动手实现了下,初次提交在线编译报未检查***错误,后面加了@SuppressWarnings("unchecked"),能提交成功, 但是后面提示:“执行测试用例失败!解析这组数据出错了:9c,de5h53hi0id437bbf796ih39bff86igeii10e8i2c983eg00c9ac1a678b80h0bf3a86cf9cb2h6e8830292c

天马波波的专栏 1168

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 最大连续字串和、积
下一篇: 报数游戏(二)
wingahi
博客等级 码龄15年 15粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值