蓝桥杯 基础练习 高精度加法 C语言

蓝桥杯C/C++VIP试题每日一练之高精度加法 蓝桥杯每日一练第十八天高精度计算。 阅读详情
问题描述

输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。

算法描述

由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。
  定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。
  计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。依此类推,即可求出C的所有位。
  最后将C输出即可。

输入格式

输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。两个整数都不超过100位,两数的最高位都不是0。

输出格式

输出一行,表示a + b的值。

样例输入

20100122201001221234567890
2010012220100122

样例输出

20100122203011233454668012

基本思想流程

1.输入两个字符串;
2.为了计算方便,事先需要将长度较长的加数保存到lon数组中,长度短的保存到shor数组中。所一开始的时候将输入的字符串a 和b判断一下。
3.要注意输入的是高位在前,低位在后。但是我们计算是需要低位在前,高位在后。所以字符串逆置。
exchange函数用来逆置。
4.长度由于不能一定就相等,所以分情况进行处理:
(1)大小数都有的位计算:数组的对应位相加,注意由于是字符数组,计算的i结果又需要是数字,所以需要将字符加减转换成数字加减,-48*2(两个都是字符,48为字符0的ASCLL码),最后还要加上进位 r,然后将结果保存到对用的C数组中的对应位c[i]。
(2)大数才有的位计算:直接将大数的位置的数给C数组对应的位就行,
但是需要注意的是上一步的计算可能还有进位,所以循环时第一次我们还是需要加上进位r,然后r/10,就是下次计算的时候需要的进位,并且下一位才加,如果没有进位,就是0了。
(3)如果进位一直持续到大数的的最高位值,即和的位数比大数的位数还要大,那么我们还需要再加上这个最后的进位。就是最后一个循环了
5.计算完成之后,是低位在前,高位在后,所以需要再逆置。
6.循环输出C数组结果

#include<stdio.h>
#include<string.h>
//字符串倒置函数
void exchange(char* lon){
	int len = strlen(lon);
	int i,t;
	for(i=0;i<len/2;i++){
		t=lon[len-1-i];
		lon[len-1-i] = lon[i];
		lon[i] = t;
	} 
}
int main(){
	char a[100]={0},b[100]={0},c[101]={0};
	char lon[100]={0},shor[100]={0};
		int i; 
	scanf("%s",a);
	scanf("%s",b);
	int lena = strlen(a);
	int lenb = strlen(b);
	//判断哪个输入的字符串长,长的给lon,短的给shor;
	if(lena >= lenb ){
		strcpy(lon,a);
		strcpy(shor,b);
	}else{
		strcpy(lon,b);
		strcpy(shor,a);
	}
	
	int len_long = strlen(lon);
	int len_shor = strlen(shor);
	char t;
	int y;
	//字符串逆置
	exchange(lon);
	exchange(shor);
	//开始计算
	int r = 0;//进位计算
	int temp = 0;//零时存储和 
//(1)相同位计算
	for(i=0;i<len_shor;i++){
		temp = lon[i]+shor[i]-48*2+r;
		c[i] = temp%10+'0';
		r = temp/10;
	}
//(2)大数才有的位计算
	while(len_shor!=len_long){
		
		temp = lon[len_shor]+r-'0';
		c[len_shor] =temp%10+'0' ;
		r = temp/10;
		len_shor++;
	}
//(3)当还有进位时 
	while(r){
		c[len_long++]=r+'0';
		r = r/10;
	}
//结果还需要逆置	
	exchange(c);
//循环输出结果
	for(i = 0;i<strlen(c);i++){
		printf("%c",c[i]);
	}
	return 0;
} 
C语言-高精度加法 C语言-高精度加法,C语言程序设计实验之高精度加法 立即下载

相关推荐

Flutter 直接调用so动态库,或调用C/C++源文件内函数

我把 .so 文件尝试放过好几个目录/lib/,最终都会报这个错误,现在才知道库文件需要放在你根本想象不到的地方!!!尝试了一些方法还是不行后我放弃了 ffi,想着用 Flutter 的 MethodChannel 桥接 android/ios 原生,再让原生去调 native 层。一顿操作把Android端的搞定了,当然中间涉及到 Kotlin和C++ 层的数据类型映射的痛苦,而且业务函数也不像一个 helloworld 那么简单,别提有多痛苦了。

开发以大橘为重 8349

蓝桥杯 [BASIC-29] 高精度加法

基础练习 高精度加法 时间限制:1.0s 内存限制:512.0MB 问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样

不忘初心 方得始终 1492

深度排查:网讯网卡WX1860AL4千兆网口降速百兆的硬件陷阱

本文详细剖析了网讯网卡WX1860AL4千兆网口降速至百兆的硬件故障排查过程。通过分析千兆以太网硬件原理,提供从网线、供电到PCB走线、焊接残留的标准化检修流程,并分享两种典型硬件陷阱(线序错误与焊锡短路)的实战修复案例,为硬件工程师解决类似传输速率问题提供系统性的诊断思路与方法。

a3b4c5的博客 1109

蓝桥基础练习之高精度加法(数组)

一、题目 问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则...

weixin_42416780的博客 315

计算机视觉-全景图像拼接中的特征匹配与优化策略

本文深入探讨了计算机视觉中全景图像拼接的核心技术,重点解析了特征匹配后的关键优化策略。通过SIFT特征提取、RANSAC算法剔除误匹配,并结合APAP算法应对视差与鬼影问题,详细阐述了从基础对齐到无缝融合的完整流程,为开发者实现高质量全景拼接提供了实用指南。

weixin_29039773的博客 361

基于SHIS凝视型短波红外高光谱相机(900-1700nm)区分不同宝石的差异性和可分性(宝石分选)

SHIS系列凝视型高光谱相机基于液晶可调谐滤波器(LCTF),通过电控LCTF进行连续细分窄波段分光,对每个波段进行高分辨率的二维面阵成像,进行图像处理后,获得完整的高光谱高清图像序列。具有低功耗、小型化、使用方便和易于扩展的优势。其工作波段覆盖400nm至1000nm,能够捕捉宝石在不同波长下的光谱特征,为宝石鉴定提供了新的工具。

wayho的博客 707

蓝桥杯 高精度加法 C++基础练习 HERODING的蓝桥杯之路

资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c = a + b的时候...

HERODING23的博客 547

【深大算法设计与分析】实验六 最大流应用问题(棒球赛问题) 实验报告 附代码、数据集

【内附代码与数据集】【深大算法设计与分析】实验六 最大流应用问题(棒球赛问题)

m0_74268508的博客 1292

基础练习 高精度加法

Description 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 Input 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即...

没有西瓜汁 360

【异常】OpenClaw LLM请求超时故障全链路排查与解决方案 LLM request timed out. 网络连接超时了

摘要: OpenClaw LLM请求超时故障是高频网络交互问题,表现为客户端在预设时间内未收到服务端响应。根因分为四类:客户端配置缺陷(如超时阈值不合理)、网络链路异常(防火墙拦截等)、服务端问题(限流/宕机)及硬件瓶颈(算力不足)。解决方案分三步: 通用排查:检查网络连通性、关闭防火墙/代理校验,调整超时阈值至60-300秒; 分场景修复:云端API需核对密钥/限流规则,本地部署需验证服务状态与硬件资源; 兜底方案:重启程序、更新版本或更换服务端点,结合日志精准定位。修复后不影响OpenClaw数据完整性

奶爸的编程之路,也就一周冷个三天 2058

把 SAP S/4HANA 中的 Maintain Email Templates 用好:从模板维护、语言变体、业务绑定到传输治理的完整实践

摘要:SAP邮件模板管理常被低估,实则关乎审批通知、业务提醒等关键输出。官方推荐通过复制标准模板实现自定义,而非直接修改标准内容,以保持核心稳定。模板维护涉及语言变体、业务绑定、数据传输等治理环节,需业务顾问与开发团队协作确保字段来源与渲染逻辑。实施时需注意Fiori配置、权限分配及传输管理,避免测试与生产环境差异。模板设计应平衡灵活性与复杂度,遵循分层测试策略(内容、数据、流程),并建立命名规范以维护资产清晰度。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 66

题目1003:A+B

水题,简单的字符串转换为长整型数字。 #include #include long stoi(char s[]) {     long count=0;     int i;     for(i=0;i         if(s[i]>='0'&&s[i]     }     if(s[0] == '-') return -1.0*count;     return coun

nuppt 822

金融数字化——详解2025年金融智能体深度应用报告【附全文阅读】

《2025年金融智能体深度应用报告》显示,金融智能体已实现80%部署率,推动行业效率提升30%-50%。报告指出智能体通过"感知-推理-规划-执行-进化"机制突破大模型局限,在风控、客服、投研等100+场景实现自动化。典型案例显示,工商银行信贷审批效率提升60%,蚂蚁数科智能客服解决80%问题。尽管面临系统协同、标准缺失等挑战,未来趋势将向多模态交互、自主进化和ESG投资等方向拓展。

cdfunlove的博客 203

C语言 蓝桥杯 试题 基础练习 高精度加法

问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c=a+b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]...

Insane_Outlier的博客 569

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

蓝桥杯 C语言 基础练习 高精度加法

问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c=a+b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]...

m0_53821257的博客 251

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C语言-蓝桥杯- 基础练习 高精度加法

问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时

qq_45256352的博客 542

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

蓝桥杯基础练习VIP-高精度加法(C语言)

计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。输入两个整数a和b,输出这两个整数的和。

Ehell的博客 180

蓝桥杯C语言基础练习 高精度加法

问题描述输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的...

zhangge138的博客 2543

python高精度加法_[蓝桥杯][基础练习VIP]高精度加法 (C语言代码)

解题思路:注意事项:参考代码:#include #include int main(void){char a[103], b[103];int lengtha, lengthb;while (scanf("%s%s", a, b) != EOF){int num1[103] = { 0 }, num2[103] = { 0 }, num3[103] = { 0 }, i, j, l;lengtha...

weixin_39718006的博客 206

蓝桥杯 基础练习 高精度加法 (vip)

蓝桥杯 基础练习 高精度加法 (vip) 代码: #include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { char a[110],b[110],c[110]; memset(c,0,sizeof(c));//防止出现乱码,清零 int len1,len2,i; scanf("%s%s"...

Qi2456的博客 444

c语言高精度加减法程序,[蓝桥杯][基础练习VIP]高精度加法-题解(C语言代码)...

注意事项:当进行置换时,for(int i=0;i参考代码:#includeusingnamespacestd;inta[105];intb[105];intc[105];intmain(){inti=0,len1,len2,j=0;charch;inttemp;while((ch=getchar())!='\n'){temp=ch-'0';a[i]=temp;i++;}len1...

weixin_35851482的博客 369

蓝桥杯VIP试题 基础练习 高精度加法

本题由Java实现。 题目如下: 问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c = a + b的时候,首先将A[0]与B[0...

夜的瞳 570

蓝桥杯 基础练习 高精度加法

问题描述   输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述   由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。   定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。   计算c = a + b的时候,首先将A[0]与B[0]相加,如果有

我们的时光 621

[蓝桥杯]试题 基础练习 高精度加法

#include<iostream> #include<string> #include<vector> using namespace std; int main() { string a,b; cin>>a>>b; if(a.size() < b.size()) {//让a是长的 string temp =...

qq_40691051的博客 527

算法-蓝桥杯习题(2-2)

  蓝桥杯习题 目录   入门训练(详见 算法-蓝桥杯习题(1-1))Go   基础练习(详见 算法-蓝桥杯习题(2-1))Go 基础练习(详见 算法-蓝桥杯习题(2-2))Go 算法训练(详见 算法-蓝桥杯习题(3-1))Go 算法训练(详见 算法-蓝桥杯习题(3-2))Go 算法训练(详见 算法-蓝桥杯习题(3-3))Go 算法训练(详见 算法-蓝桥杯习题(3-4))Go...

GFox-鬼狐 2万+
上一篇: 蓝桥杯 算法训练 字符串合并
下一篇: Java连接数据库过程完整描述
Bad_Shepherd
博客等级 码龄7年 99粉丝 57原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值