大数加法 蓝桥杯 C语言

大数加法(蓝桥杯) 大数加法题目正文输入输出样例代码总结 题目正文 输入两个正整数a,b,输出a+b的值。 输入 两行,第一行a,第二行b。a和b的长度均小于1000位。 输出 一行,a+b的值。 样例 4 2 6 代码 #include<iostream> #include<stdio.h> #include<bits/stdc++.h> using namespace std; typedef long long ll; int a[1005],b[1005],c[1005]; int 阅读详情

这是蓝桥杯练习系统上的-算法提高-大数加法,纯C语言,大一就能学会

说一下我的解题思路:

  1. 首先用字符串代表输入”大数“,这边可以直接用scanf输入;

  1. 然后比较两个字符串(数)的长度,我这里是保证s1的长度<s2的长度,即如果s1比s2长,则交换顺序,比较长度是为了方便后面对齐;

  1. 将两个字符串倒序储存在另外两个字符串str1,str2中(加法从个位开始);

  1. 前面说过,要对齐,我们已知str1是短字符串(小的数),直接将str1后面的长度赋值为0,注意,这里是字符‘0’;

  1. 接着开始做加法运算:将结果放在一个整型数组中(数组ans已赋初值0);逐位相加,考虑进位,如果相加的数>9,则减10;下一位存在的话,下一位加1,如果下一位不存在,我们可以在最开始插旗flag=0,令这个flag=1,最后输出1;比如1+9,加出来是个两位数,(可以保证如果加出来的位数增加了前面一定从1开始),则先输出1;

  1. 最后将数组ans倒序输出;

#include <stdio.h>
#include <string.h>
#define N 2048

int main() {
    char s1[N], s2[N], str1[N], str2[N], t[N];
    int ans[N] = {0};//结果
    int i, j, len1, len2, flag = 0;
    scanf("%s %s", s1, s2);
    if (strlen(s1) > strlen(s2)) { //s1为短,s2为长
        strcpy(t, s1);
        strcpy(s1, s2);
        strcpy(s2, t);
    }
    len1 = strlen(s1);//计算长度
    len2 = strlen(s2);
    j = 0;
    for (i = len1 - 1; i >= 0; i--) { //倒序
        str1[j++] = s1[i];
    }
//    str1[j] = '\0';
    j = 0;
    for (i = len2 - 1; i >= 0; i--) { //倒序
        str2[j++] = s2[i];
    }
    str2[j] = '\0';
    for (i = len1; i < len2; i++) { //空缺位置赋0(对齐)
        str1[i] = '0';
    }
    str1[i] = '\0';
    for (i = 0; i < len2; i++) {
        ans[i] += (str1[i] + str2[i] - '0' - '0');
        if (ans[i] > 9) {
            ans[i] -= 10;
            if (i + 1 < len2) {
                ans[i + 1] += 1;
            } else if (i + 1 == len2)
                flag = 1;
        }
    }
    if (flag == 1)
        printf("1");
    for (i = len2 - 1; i >= 0; i--)
        printf("%d", ans[i]);
    return 0;
}

最后奉上测评正确截图:

从零开始:蓝桥杯C语言练习题的思维拆解与实战优化 本文详细拆解蓝桥杯C语言竞赛中的经典练习题,包括斐波那契数列、杨辉三角等算法问题的优化解法。通过递推与矩阵快速幂对比、动态规划空间优化等实战案例,帮助参赛者提升算法思维和编码能力,为蓝桥杯竞赛提供高效备赛策略。 阅读详情

相关推荐

蓝桥杯 高精度加法 Java大数真香

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

代码演奏家 782

【蓝桥杯每日一练:大整数加法】

题目描述 计算两个大整数的和。大整数是指超过了c,c++表示范围的整数,如1234567890000000000000000000 输入格式 输入包括两个大整数,每个大整数不超过100位,用空格或者换行隔开。 输出格式 输出两个大整数的和。 输入样例 222222222222222222222 333333333333333333333 输出样例 555555555555555555555 代码 n=int(input()) #int将输入转成整型 m=int(input()) pr

weixin_63182150的博客 934

蓝桥杯练习--高精度加法

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

coding_debug的博客 6627

[蓝桥杯][算法提高VIP]大数加法-题解(C语言描述)

解题思路: 一刷:川哥的吩咐 二刷碰到了这道题,重新整理了以下思路 本题就是高精度的加法,利用数组求和,进位 首先就是先用字符串存储你输入的 两个数,变换成整型存放到整型数组中,最后就是加法的运算了 注意事项: 本意需注意的几点 在进行运算后记得把数组清零 注意max指向的是最高位,而有的时候算到最高位时还需再进一位,此时只需将max+1即可 在这里插入代码片 ...

pingfanblog 484

蓝桥杯练习系统习题解答-入门训练(C语言)

蓝桥杯练习系统习题解答-入门训练 学习网站推荐: C语言网 C语言中文网 C语言教程 题目搜索方式:Ctrl+F—-&amp;amp;amp;gt; 输入题目名称—&amp;amp;amp;gt;定位到解答。 BEGIN-1 A+B问题 问题描述 输入A、B,输出A+B。 说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。 输入格式 输入的第一行包括两个整数,由空格分隔,分别表示A、B。 说明:“输入格式”是描述在测试你的...

qq_37992321的博客 1231

大整数加减法

普通的计算器在进行大整数的加减法时,可能会因为越界而丢掉后面的数。而该算法可实现两个大整数的加减法运算,能解决以上出现的问题。

算法提高 大数加法

问题描述   输入两个正整数a,b,输出a+b的值。 输入格式   两行,第一行a,第二行b。a和b的长度均小于1000位。 输出格式   一行,a+b的值。 样例输入 4 2 样例输出 6

最有趣的编程 754

研究生研一学习机器学习ML、深度学习DL的规划

研究生学习机器学习DL、深度学习DL的规划 保上研之后也没有很好规划自己的学习路线,看到b站上的一位清华博士讲述他本科也是机械跨考计算机的学习路线,所以记录下来,从现在开始按照规划来一点一点地做好。 掌握python(推荐一周) 1.1 面向对象编程 廖雪峰python网站: https://www.liaoxuefeng.com 1.2 数据分析Numpy numpy 100题: https://www.yanxishe.com/columnDetail/24784 1.3数据分析pandas pan

没有最好,只有更好 3098

[蓝桥杯][基础练习VIP]高精度加法&&[蓝桥杯][算法提高VIP]大数加法

文章目录[蓝桥杯][基础练习VIP]高精度加法题目描述输入输出样例输入样例输出[蓝桥杯][算法提高VIP]大数加法题目描述输入输出样例输入样例输出c语言AC代码 [蓝桥杯][基础练习VIP]高精度加法 题目描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c =

qq_43610614的博客 519

MIKE水动力笔记18_如何将dfsu流场模拟结果的数据导出成txt文件

MIKE的模拟结果dfsu文件的数据是可以导出的,导出格式为xyz,我们也可以将其改后缀改为txt文本格式,其中包含了某一时刻下所有网格坐标点的数据。

晏长街的博客 4406

霜冰优化算法(RIME)详解:从自然现象到智能优化

霜冰优化算法(RIME)是一种新型元启发式优化算法,灵感源于自然界中霜冰的形成过程。该算法通过模拟软霜和硬霜的不同生长特性,实现了高效的全局探索和局部开发平衡。RIME算法包含三个核心机制:软霜搜索策略模拟随机覆盖特性实现全局探索;硬霜穿刺机制模拟定向生长特性进行局部开发;正向贪婪选择机制确保解的持续优化。与遗传算法、粒子群算法相比,RIME具有参数少、收敛快、自适应平衡等优势,特别适合处理高维复杂优化问题。算法已在工程优化、机器学习等领域获得广泛应用,发表一年内即成为高被引论文。

qq_42212808的博客 780

蓝桥杯 基础练习 高精度加法 (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

2、Minikube安装Ingress

文章目录前言一、Ingress安装二、Ingress Demo1.创建一个pod和service2.部署ingress3.添加minikube域名映射三、遇到的坑 前言 上篇介绍了Minikube的安装,本篇介绍一下如何在Minikube中安装Ingress。 一、Ingress安装 Ingress安装很简单,Minikube里面带了Ingress附件。 安装Ingress minikube addons enable ingress 禁用Ingress minikube addons disa

star_apple的博客 3070

蓝桥杯练习010

蓝桥杯练习010 高精度加法 题目描述 给定两个整数 a和 b,请你求出这两个整数的和。 输入描述 输入两个正整数 a,b,a 和 b 都不超过 100 位。 输出描述 输出 a+b。 输入输出样例 示例 输入 1234567890123456789 9876543210987654321 输出 11111111101111111110 运行限制 最大运行时间:1s 最大运行内存: 128M 解题思路 C++: 萌新: 这题也是个高精度问题,做法应该和上一道差不多,也是用数组模拟小学加法。我

qq_51302626的博客 176

SAP_MM&FI模块-质保金标准解决方案详解

主要讲述了SAP系统质保金的标准实现方案,包含业务背景、后台配置、前台业务操作记录,以及关键点的AI解释;

风沙的博客 683

华为OD机试 - 计算误码率(Python/JS/C/C++ 双机位C卷 100分)

移动通信 网络中的误码率主要是指比特误码率,其计算公式如下:比特误码率 = 错误比特数 / 传输总比特数,为了简单,我们引入字符串来表示误码通信的信息,一个字符错误了,就认为出现了一个误码。我们需要将这两个压缩字符串解压成实际的字符序列,然后逐位比较它们,统计误码(不同字符)的数量。题目给出两个经过压缩编码的字符串,通过解压缩后需要判断两个字符串在解压后的误码率,即对应位置不同的字符数量占总字符数量的比例。输入一个标准的字符串,和一个传输前的字符串,计算误码率。两个解压后的字符串完全相同,没有错误字符。

学Java,找哪吒 2193

大数加法-蓝桥杯

此题的关键是处理⼤数的输⼊,因为整数a和b太 ⼤,⽆法将其直接赋值给C++的变量,所以不能按数字读⼊,只 能按字符读⼊。⼤数a⽤字符串来存储,⼀个字符存储⼀位数字,a[0]存最⾼位 数字,a[1]存次⾼位数字……a[n−1]存最低位数字,等等。例如356×8,先计算个位的6×8,得48,其中个位的8等于 48%10=8,进位的4等于48/10=4。这里阶乘计算的核心在于可以直接把i和a[j]相乘,由于a是从低位到高位存储的,符合乘法的基本步骤,只要这里的结果没有超出范围,那总的结果就可以保证是对的。

qq_61851572的博客 1273

RK3568平台开发系列讲解(音频篇)配置声卡

📢本篇文章介绍如何配置声卡。

内核笔记 2448

大数加法【蓝桥杯】【算法提高VIP】

原题链接:蓝桥杯算法提高VIP大数加法 此题严重卡 getchar()or gets()输入 1.ch=getchar()输入记录字符 参考代码: #include<bits/stdc++.h> using namespace std; int a[1005]; int b[1005]; int c[1005]; int main(){ int i=0,len1,len2,j=0; char ch; int temp; while((ch=getchar())!=

m0_46549788的博客 270

PMO与供应链管理的整合:端到端项目交付的优化策略

在当今全球化和市场竞争日益激烈的环境中,组织面临着前所未有的项目复杂性和交付压力。传统上相互独立的项目管理办公室(PMO)与供应链管理(SCM)正逐渐意识到:只有通过无缝整合,才能实现真正高效的端到端项目交付。本文深入探讨了PMO与供应链管理整合的战略价值、核心框架和实施路径,通过生动的比喻、实际案例和实用工具,展示了如何打破部门壁垒,构建协同高效的项目生态系统。无论您是PMO负责人、供应链专业人士还是高级管理层,都将从本文获得重塑项目交付模式、优化资源利用、降低风险并提升组织竞争力的宝贵见解和行动指南。

项目管理的博客 947

pscad IEEE标准系统搭建说明

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

每日c/c++题 备战蓝桥杯(洛谷P1015 [NOIP 1999 普及组] 回文数)

本题核心是掌握大数运算在模拟题中的应用关键点在于:正确实现进制转换高效处理大数加法与进位准确判断回文结构实际编程时需特别注意:数组越界问题(动态维护len变量)不同进制的字符处理(0-9和A-F)步骤计数器的初始值与终止条件进制转换的双向实现大数运算的基本技巧模拟算法的优化策略。

m0_74096349的博客 1189

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[蓝桥杯][算法提高VIP]大数加法高精度

时间限制: 1Sec 内存限制: 128MB 题目描述 输入两个正整数a,b,输出a+b的值。 输入 两行,第一行a,第二行b。a和b的长度均小于1000位。 输出 一行,a+b的值。 样例输入 4 2 样例输出 6 分析:很显然,整型类型已不满足条件,需要用字符数组来解决,将两个数储存在字符数组中,然后逆序储存到整型数组中(记得减去‘0’),然后两两加和,大于十则进一,最后逆序输出 C语言代码如...

Anterior_condyle的博客 384

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

Bad_Shepherd的博客 1826

[蓝桥杯]高精度加法

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

DanBo_C的博客 1095

[蓝桥杯][基础练习VIP]高精度加法/大数加法

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

LSZ_179的博客 286
下一篇: Vue3项目实战硅谷甄选,从0实现项目搭建
泠花
博客等级 码龄4年 12粉丝 3原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值