1.为什么使用高精度算法啊?

在c语言中,int类型取值范围为(-2^31 ~ 2^31-1),而long long类型取值范围也才仅有(-2^63~ 2^63-1),在处理一些较大的数据时,显然仅靠这些类型,是完全无法处理的

2.高精度加法的核心思想(图解)

3.高精度算法的核心思想

其实就是用数组来处理高精度问题
将很大的数字用字符数组存储,再将其中一个个的数字变为整数存入整形数组中

4.准备工作

1.要输入东西

int main()
{char s1[3000], s2[3000];scanf("%s%s", s1, s2);int a[3000], b[3000], c[3000];//a来装s1,b来装s2,c来求和memset(a, 0, sizeof(a));//将数组清零memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));return 0;
}

2.开始转化数字

    int l1 = strlen(s1);int l2 = strlen(s2);int i, j;for (i = 0, j = l1 - 1; i < l1; i++, j--){a[i] = s1[j] - '0';}for (i = 0, j = l2 - 1; i < l2; i++, j--){b[i] = s2[j] - '0';}//注意这里我们要逆着放入输入的数,原因是便于我们后续处理,个人认为没啥特别的,也不需要特别理解

5.核心代码

开始转化了哦!!!

    int len = 0;if (l1 > l2){len = l1;}else{len = l2;}for (i = 0; i < len; i++){c[i] = a[i] + b[i];}for (i = 0; i < len; i++){if (c[i] >= 10){c[i + 1] += c[i] / 10;c[i] %= 10;}}//就是我上面那张图解,实际上可以做的更好,但为了便于理解我将这块分成了两部分

6.最后工作

    i = 2999;while (c[i] == 0 && i > 0)//去零,就low点把实际上还有好的办法,但理解第一{i--;}for (j = i; j >= 0; j--)//逆着输出这不就对上了吗{printf("%d", c[j]);}

7.最终代码

#include <stdio.h>
#include <string.h>
int main()
{char s1[3000], s2[3000];scanf("%s%s", s1, s2);int a[3000], b[3000], c[3000];memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));int l1 = strlen(s1);int l2 = strlen(s2);int i, j;for (i = 0, j = l1 - 1; i < l1; i++, j--){a[i] = s1[j] - '0';}for (i = 0, j = l2 - 1; i < l2; i++, j--){b[i] = s2[j] - '0';}int len = 0;if (l1 > l2){len = l1;}else{len = l2;}for (i = 0; i < len; i++){c[i] = a[i] + b[i];}for (i = 0; i < len; i++){if (c[i] >= 10){c[i + 1] += c[i] / 10;c[i] %= 10;}}i = 2999;while (c[i] == 0 && i > 0){i--;}for (j = i; j >= 0; j--){printf("%d", c[j]);}return 0;
}

8.结果展示

2341245213543654576547567
2314231535464575675686788
4655476749008230252234355
D:\vs2019 c\算法分析\Debug\main.c.exe (进程 6968)已退出,代码为 0。
按任意键关闭此窗口. . .

总结

算法魅力无穷,本人水平有限,只能至此。愿与诸君共同进步,奔向美好未来

c语言高精度算法(加法)相关推荐

  1. c语言高精度算法阶乘_任意位数的高精度阶乘算法 C语言版

    文章作者:姜南(Slyar)文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 今天就研究这个"任意位数的高精度阶乘算法"了,通过和大三的一个学 ...

  2. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...

    https://juejin.im/post/6844903811505455118 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度.几乎毫无例外 ...

  3. c语言高精度算法阶乘_学了这么久的C语言,原来可以这样解决算法问题...

    C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的.更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础. ...

  4. 高精度阶乘和 高精度算法(c语言)

    以前刷oj的时候 遇见一个题目 也就是输入一个数字 判断阶乘和 用高精度计算出S=1!+2!+3!+-+N!(N≤50),其中"!"表示阶乘, 例如:5!=5*4*3*2*1.输入 ...

  5. 【基础】(C语言)高精度算法

    文章目录 前言:为什么我们需要高精度算法? 一.高精度算法基础 二.高精度乘法 1.计算流程 2.完整代码 三.总结 前言:为什么我们需要高精度算法? 多数时候我们需要进行非常庞大的数字运算,其中涉及 ...

  6. 高精度算法(加减乘除取模(均可以处理负数))

    高精度算法 前言 大数加法 不可以处理负数的模板 可以处理负数 大数减法 两个数都是整数,且相减结果大于0 两个数都是正整数,相减结果可以是负数 两个数均可以是负数 高精度乘法 两个数均可以是负数 大 ...

  7. 高精度算法——高精度减法

    介绍: 高精度减法也同加法一样,也是用于位数太大的运算,给你一个十几位的数你可能会做直接开个long long 的数据类型就解决了,但是给你一个100位的呢,1000位的呢,开long long 也不 ...

  8. C语言常用算法源代码

    原文地址:C语言常用算法源代码 作者:xuzengshuai 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和.阶乘的 ...

  9. A.pro读算法の2:高精度算法

    1.1 描述 高精度算法,属于处理大数字的数学计算方法.在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字.一般这类数字我们统称为高精度数,高精度算法是用计算机对于 ...

最新文章

  1. 1.4亿围观!宝藏副教授火速走红:如果不喜欢我的研究方向,我可以改!
  2. 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
  3. mysql源码如何解析where字句_MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(一)...
  4. 分布式计算的模式语言读后感
  5. halcon知识:工业相机问答(更新中...)
  6. C++静态多态(模版模拟多态)的讨论
  7. 如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务
  8. Python try/except/finally等
  9. Oracle 游标使用全解(摘抄)
  10. IntelliJ IDEA设置maven
  11. 通过python爬取数据
  12. 使用 Apache Hadoop 处理日志
  13. pytorch中的 nn.ModuleList 和 nn.Sequential
  14. word2016 图片去底灰_打印图片怎样去灰色底
  15. 微信公众平台如何审核
  16. ES2015 解构 Destructuring
  17. 从后端到前端的转变:如何选择框架?
  18. jupyter文件自动保存为html,使用jupyter notebook将文件保存为Markdown,HTML等文件格式...
  19. realme真我Q5和iQOOz6pro哪个值得买 两者配置对比
  20. 原来酷炫的大屏,用Excel就能做

热门文章

  1. DataWhale 组队学习爬虫 Task2
  2. seo网站推广优化,网站页面的SEO优化怎么做
  3. adobe 奥多比bridge extention等产品 “安装程序无法初始化。请下载Adobe Support Advisor检测该问题”
  4. 2018全国普通高校学科竞赛排行榜发布
  5. visibility的用法
  6. pam模块之faillock
  7. mindray心电监护仪使用说明_监护仪使用说明
  8. 前世界银行经济学家质疑华为财报
  9. pp模块常用表 sap_SAPpp模块内表..doc
  10. 谁是中国移动互联网的王者?360发布定制手机消息随感