为什么要需要高精度计算?

每种计算机语言的基本数据类型,都有一定的范围限制,在一些科学计算中,当需要运算的算数(加数、减数、乘数、除数)大于基本数据类型所能表示的范围时,需要通过算法来实现这些运算,比如200位的两个数相乘

高精度计算需要解决的问题:

1、数据的输入和存储

通常情况下,采用字符或者字符串方式输入,用数组来存储输入数的每个位数上的数字

如“45654756”

第一种方法,定义一个结构体,结构体中包含一个数组,和一个长度

第二种方式,只用一个数组,存储,数组的第0个元素存储该数的位数

本人认为第二种方式更为简洁,更符合使用习惯

采用“倒序”存储,是将个位放在最前,以便和其他数计算时,位数对齐

//第一种方式,用结构体
struct{int len;//表示这个数的位数int num[6,5,7,4,5,6,5,4];//存储这个数各位数上的数字
}
第二种方式:用数组的第0位存储该数的位数
num[8,6,5,7,4,5,6,5,4]

以下是输入字符串,将数保存到数组的代码:

#include <iostream>
#include <cstring>
using namespace std;
const int LEN=500;
int aa[LEN];void inputNum(string ss,int a[]); //输入需要计算的数保存到数组
void printArr(int a[]) //将一个数打印输出int main()
{string s1 ="36895434535";inputNum(s1,aa);printArr(aa);return 0;
}void inputNum(string ss,int a[])
{int len = ss.length();a[0] = len;for (int i=0;i<len;i++){a[len-i] = ss[i] - 48;//字符变成数字,并且倒序存储}
}
void printArr(int a[])
{for (int i=a[0];i>0;i--){cout<<a[i];}cout<<endl;
}

2、运算过程:

根据计算要求,运算过程在后续课程介绍

信息学奥赛系列教程:高精度计算相关推荐

  1. 信息学奥赛系列教程:开发工具Dev C++安装

    Dev C++安装和基本设置 工欲善其事,必先利其器,学习C++语言编程,需要使用相关的开发工具,C++语言的程序的开发工具有很多,比如微软的VS,之所以选择Dev c++,是因为: Dev C++是 ...

  2. 信息学奥赛c语言初步教程,信息学奥赛培训教程C++版整理版.doc

    信息学奥赛培训教程C++版整理版.doc PAGE 青少年信息学奥林匹克竞赛培训教程 目 录 TOC \o "1-3" \h \z \u HYPERLINK \l "_T ...

  3. 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)

    前言 众所周知,Python是一种非常实用的语言.但是由于其运算时的低效和解释型编译,在信息学竞赛中并不用于完成算法程序.但正如LRJ在<算法竞赛入门经典-训练指南>中所说的一样,如果会用 ...

  4. python是信息学奥赛的前置课吗

    NOI全国青少年信息学奥林匹克竞赛 NOI全国青少年信息学奥林匹克竞赛 NOI Linux 2.0发布,将于9月1日起正式启用! NOI Linux 2.0发布,将于9月1日起正式启用! 关于NOI系 ...

  5. 逻辑航线信息学系列教程:二进制(Binary)

    逻辑航线信息学系列教程 二进制(Binary)         二进制是计算技术中广泛采用的一种数制,是现代计算机的运算基础. 计算机仅仅能识别 "0" 和 "1&quo ...

  6. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  7. 信息学奥赛课课通VS中学生计算机,数学奥赛VS信息学奥赛 孩子们该如何选择

    同是奥赛,为什么越来越多的孩子选了信息学? 今年3月,教育部正式发布通知:全面取消中学奥赛等5项全国性高考加分项目.这个消息对很多有志于让孩子"走捷径"的家长而言,可谓晴空霹雳,升 ...

  8. 信息学奥赛之数学一本通_部分地区中考加分,又一批中学公布中考认可信息学特长生!...

    点击上面微信号关注我关注我哟定期推送帐号信息学新闻,竞赛自主招生,信息学专业知识,信息学疑难解答,信息学训练营信息等诸多优质内容的微信平台,欢迎分享文章给你的朋友或者朋友圈!有任何问题请联系小编!清北 ...

  9. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

最新文章

  1. php float浮点型 用round方法比较
  2. Grails下 Membership和全文搜索实战录
  3. 生活在AI的世界是种什么体验?
  4. javascript数组查重方法总结
  5. jQuery选择器大全(48个代码片段+21幅图演示)
  6. matlab中双引号_Octave、SciLab能否替代MATLAB?
  7. 基于遗传算法实现自动组卷
  8. opencv Mat push_back
  9. oracle手机怎么样,ORACLE环境存储哪家强?
  10. java+io体系结构图_Java IO 体系结构
  11. Default Folder X 5 for Mac(文件快捷访问工具)
  12. python基础篇——列表与列表算法(下)
  13. 在AspNetCore中json序列化日期格式自定义
  14. SaaS服务和个性化需求,就不能鱼和熊掌兼得吗?
  15. 【历史上的今天】1 月 17 日:VirtualBox 诞生;杨致远辞职;风暴蠕虫问世
  16. 汽车Bootloader原理
  17. DOS命令:chkdsk
  18. SAP 移动类型详解 大全说明
  19. 秦牧鸿蒙之体有什么用,第一五一二章 鸿蒙元气
  20. Arduino与红外遥控握手

热门文章

  1. Fast 22 HTMFS: Strong Consistency Comes for Free with Hardware Transactional Memory in Persistent...
  2. 关于ISI、SCI、EI、IEEE、Elsevier、Springer的理解
  3. uPaste : 一款实用又好用的剪贴板工具
  4. 中了ARP病毒解决方法与相关工具
  5. 【IEEE】中科院2区计算机系统类,SCIEEI双检,正刊
  6. qq企鹅图标java源代码_腾讯QQ更换新标识续:看一个企鹅的蜕变之路
  7. 百兆、千兆网线的做法
  8. Educoder计算机数据表示实验(HUST)-汉字国标码转区位码实验偶校验编码设计logisim
  9. PPOE简单解析和配置
  10. 树莓派3用ppoe拨号连接宽带