计算机,顾名思义,是用于高速计算的电子计算机器。它可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。[1]但是,计算机的功能毕竟是有限的,再强大的计算机在面对一些问题时也有它的局限性,本系列文章就来具体阐述其中的一种问题:高精度运算。

先从一个问题说起:编程从键盘输入n,然后计算并输出1+2+3+…+n的值。

这应该是每个人初学循环控制结构与循环语句时都会遇到的经典问题,最初我们接触到的代码如下:

#include <stdio.h>
int main
{int i, n, sum;printf("Input n:");scanf("%d", &n);sum = 0;//累加和变量初始化为0for (i = 1; i <= n; i++){sum = sum + i;//做累加运算}printf("sum = %d\n", sum);return 0;
}

但其实这个代码是有局限性的,它只能解决n比较小时的累加求和问题,当n很大时,计算机的精度就会下降。这是因为int型变量在内存中只占4个字节,所表示的范围仅为~,即为-2147483648~2147483647。又有人会说,那int不够用,用long int、long long int总可以吧?但是这些数据类型始终有它们的最大取值范围,当n足够大,大到无法用任何数据类型存储时,这些方法便失去了价值,此时计算机的强大功能甚至比不上一个三年级的小学生的数学水平。

那有没有什么通用的方法呢?我们以一道例题来作为例子探究:

使用一维数组实现两个正整数相加,输出它们的和。两个正整数位数最少为20位,不超过50位,注意两个加数的位数不一定相等。


其实题目给的提示已经足够多了,就是利用加法的竖式运算原理,模拟进位运算,实现两个大数相加,具体数学原理可以参见《人民教育出版社数学三年级上册》第四章:万以内的加法和减法(二)[2],这里不作展开。(看看谁是九年义务教育漏网之鱼

C语言丨小 学 数 学(一):高精度加法相关推荐

  1. C语言丨小 学 数 学(二):高精度乘法

    计算机,顾名思义,是用于高速计算的电子计算机器.它可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备.[1]但是,计算机的功能毕竟 ...

  2. 魔术游戏二进制卡片C语言,施展小魔术,巧学二进制

    一.教材分析 本课教学内容选自江苏科学技术出版社<初中信息技术>(上册)第一章第一节中的第三部分.这一部分包括二进制和字符编码,共2课时.本节是第一课时,主要学习二进制. 二.教学目标 知 ...

  3. C语言已经自学完了,数电模电电路都还没学,学stm32会有阻碍吗

    C语言已经自学完了,数电模电电路都还没学,学stm32会有阻碍吗 起初就是学个c语言,跟着郭天祥视频进修,一通开发.大一的电路知识仅限于欧姆定律,电容滤波,二极管正向导通这样吧.但也搞得红红火火地,感 ...

  4. 幼儿学数数的c语言程序,‎App Store 上的“幼儿学数数123 - 幼儿入门教学”

    用最简单的方法来学习数数!让孩子只要点击荧幕上好玩的事情就可以学习数数中,更可以发掘学习的快乐.这款操作简单的数数游戏是专为孩子们的幼小心智和小小手指设计的,孩子们在里面可以享受无穷的数数乐趣! 简单 ...

  5. 学计算机拼音摇号,升初专栏丨小升初计算机摇号入学到底是如何进行随机录取的?...

    原标题:升初专栏丨小升初计算机摇号入学到底是如何进行随机录取的? 6月15日起,丰台.朝阳.海淀等区将陆续进行最后的划片或派位入学志愿填报,虽说已进行了一批次派位录取,但仍有很多家长不清楚计算机摇号到 ...

  6. 父与子的编程之旅:与小卡特一起学Python.pdf

    下载地址:网盘下载 编辑推荐 编程是一项充满乐趣的挑战,想要上手也非常容易!这本<父与子的编程之旅:与小卡特一起学Python>中,Warren和Carter父子以亲切的笔调.通俗的语言, ...

  7. NOIP模拟测试29「爬山·学数数·七十和十七」

    爬山题解不想写了 学数数 离散化然后找到以每一个值为最大值的连续子段有多少个,然后开个桶维护 那么怎么找以每一个值为最大值的连续子段个数 方法1(我的极笨的方法) 考试时我的丑陋思路, 定义极左值为左 ...

  8. 与小卡特一起学python 豆瓣_《父与子的编程之旅:与小卡特一起学Python》

    原标题:<父与子的编程之旅:与小卡特一起学Python> 内容简介 本书是一本家长与孩子共同学习编程的入门书.作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安 ...

  9. c语言程序设计需要学多久,九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会...

    九江c语言编程学习,九江学c语言编程报班,九江学c语言编程一般要多久才能学会 首页 > C语言 > 九江c语言编程学习 作者:镀金池   发布时间:2017-10-18 14:11 据ID ...

最新文章

  1. 太嚣张了!会Python的人!
  2. 从键盘输入10个互不相同的整数,找出其中最小的元素将其与数组中的第一个元素进行交换。
  3. LoadRunner系统架构简介与运行原理
  4. linux命令查看几位,Linux每周几个命令(一)--查找篇
  5. 纯CSS实现气泡聊天框的方法
  6. 标准C库对文件操作的引入
  7. 【编程导航】这本小书,把常考算法题讲活了!
  8. python爬虫架构设置_Python爬虫进阶三之Scrapy框架安装配置
  9. python之decorator理解
  10. 责任心来自爱而不是债
  11. pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释
  12. GridViewObjectDataSource新特性小记 懒人篇(一) 分页上路
  13. java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup
  14. ruby中调用dll的诡异错误
  15. VARCHART XGantt资讯:视觉计划咨询服务现已在AppSource上
  16. 双目测距相似三角形原理
  17. BUUCTF[SCTF2019]Who is he题解
  18. 线性代数笔记4.3 齐次线性方程组
  19. Red Hat Enterprise Linux9 + Zabbix 6.2.3 + Grafana 9.2.0
  20. Android平台第三方插件开发指导(dcloud)

热门文章

  1. 2017/09/01-2017/09/30工作日志(补)
  2. html-webpack-plugin 中使用 title选项设置模版中的值无效
  3. iOS常用手势识别器
  4. Java基础知识之数组的初始化和基本操作
  5. html之CSS设计(float定位和position定位详细分析)
  6. 华为云welink成像是反的_华为云Welink下载_华为云Welink 中文版 v6.6.6.0_Win10镜像官网...
  7. energy in transition课文翻译_思迪软件科技 招聘 字幕翻译(远程兼职)
  8. linux发送日志命令,linux:记录不同用户使用的命令发送到指定的目录中(可发送到日志服务器中)...
  9. 微课|中学生可以这样学Python(2.3.3节):内置函数sorted()
  10. Python使用matplotlib绘制正多边形逼近圆周