Advertisement

C语言/C++开发大数算术运算

阅读量:

所谓大数,即指数值极其庞大的数字,其规模已超出int或long long int等基本数据类型所能承载的范围。在计算机运算过程中,此类数值的加减乘除等基础运算需求较为常见。本文将简要阐述处理此类问题的基本思路,并提供相应的代码示例供参考。

整体思路概述

首先,数据显然无法使用int或long long int类型进行存储,因此只能采用字符串或字符数组的方式加以保存。实际上,采用字符数组接收数据是最为合适的方案,随后将其转换为int数组,再进行相应的数值运算。

其次,回忆起小学二年级所学习的加减乘除四则运算规则,可以发现一个基础性的规律:

  • 加法、减法与乘法:需按照从右至左的顺序进行计算
  • 除法:则应遵循从左到右的计算顺序

这表明我们需要对数据进行适当处理。由于输入的数据长度不固定,因此必须实现数据的对齐操作。具体而言,在执行加减乘运算时,需要将数据倒置排列,使个位与个位对齐、十分位与十分位对齐;而在执行除法运算时,则只需按照从左至右的顺序接收数据即可。

数据结构

与字符数组不同,int数组无法直接获取其长度信息,因此最初的设想是在转换int数组的过程中,额外引入一个变量len用于记录数组的长度。

复制代码
    #define MAX 1000
    
    struct bigNum{
    	int n[MAX];
    	i

全部评论 (0)

还没有任何评论哟~