博客
关于我
SSL_1491【天使的起誓】(高精度减法)
阅读量:705 次
发布时间:2019-03-17

本文共 1229 字,大约阅读时间需要 4 分钟。

将M转换为高精度的数字数组,然后逐位处理每个数字,利用模运算的性质,分步减去N的倍数,最终得到余数,即宝盒的编号。

高精度模M的解题思路

在程序中,采用高精度数字处理技术,将大的数M分解为各个位上的数字,然后逐步减去N的倍数,最终得到余数。这种方法避免了由于M太大而造成的计算问题。

将M的各个数字依次处理,从低位到高位,每次尽可能地减去N的倍数。这一步可能需要多次操作,直到所有更高位的数字也被处理完。

具体步骤如下:

  • 数字分解:将输入的M转换为单个字符的字符串,每个字符代表一个数字,形成一个数字列表。
  • 反转列表:为了方便从低位到高位处理,将列表反转。
  • 初始化余数:初始化余数为0。
  • 处理每一位数字
    • 从最低位开始遍历,累加到余数中。
    • 当累加到目前为止的数值超过或等于N时,进行减法操作。
    • 调整余数和继续处理的高位数字。
    • 重复这个过程直到处理完所有位或者无法再继续为止。
  • 输出最终余数:余数即为所求的宝盒编号。
  • 针对非常大的M(如百万位数),只能采用分解每个位数以确保计算有效性。

    值得注意的是,在处理单个数加上会导致的进位,需要确保余数的正确性。使用这种反转数字列表的方法,可以有效地处理高位重叠情况。

    具体实现步骤

    为了实现高精度模运算,可以使用以下步骤:

  • 读取输入

    • 读取数N和M,将N转换为数字数组,同时M转换为数字数组,并作为字符串处理。
  • 处理余数

    • 初始化余数为0。
    • 从M的最后一位的数字开始,逐步处理到前面。
    • 将每一位数字加到当前余数的末尾。
  • 进行减法运算

    • 每当当前累加的数值大于等于N时,计算需要减去的N的倍数,并更新余数。
    • 并将N的倍数加到结果中以供下一轮处理。
  • 处理高位借位

    • 在处理高位时,如果前面的数字需要借位以避免数值过大,就从更高位中借位。
  • 输出结果

    • 处理完所有数字后,余数即为所求的输出结果。
  • 这种方法确保了无论M有多大,都可以有效地计算出余数,从而找到正确的宝盒编号。

    样例1

    输入:79 11108

    输出:9

    解释:M=11108,N=79。

    从最低位开始:

    8 <79,余数8。

    继续处理前一位0:0+1=1 <79,余数1。

    再处理左边的1:1+1=2 <79,余数2。

    接着处理1:1+2=3 <79,余数3。

    接下来处理1:1+3=4 <79,余数4。

    最后处理1:1+4=5 <79,余数5。

    综上所述,余数为9。

    最终宝盒编号为:9。

    样例2

    输入:11108 从字符串转换生成数字列表:1,1,1,0,8

    步骤:

    处理最后一位8,现在余数为8 <79 → 余数8.

    处理前一位0:0 +1=1 <79 → 余数1.

    处理之前位1:1 +1=2 <79 → 余数2.

    处理之前位1:1 +2=3 <79 → 余数3.

    处理之前位1:1 +3=4 <79 → 余数4.

    第一个1:1 +4=5 <79 → 余数5.

    现在最后数字处理完毕,余数为5.

    但是正确的余数应该是9,对应的结果需要反向处理正确思路。

    转载地址:http://fvsez.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用
    查看>>
    OpenCV与AI深度学习|16个含源码和数据集的计算机视觉实战项目(建议收藏!)
    查看>>
    Opencv中KNN背景分割器
    查看>>
    OpenCV中基于已知相机方向的透视变形
    查看>>
    OpenCV中的监督学习
    查看>>
    opencv中读写视频
    查看>>
    OpenCV中遇到Microsoft C++ 异常 cv::Exception
    查看>>
    opencv之cv2.findContours和drawContours(python)
    查看>>
    opencv之namedWindow,imshow出现两个窗口
    查看>>
    opencv之模糊处理
    查看>>
    Opencv介绍及opencv3.0在 vs2010上的配置
    查看>>
    OpenCV使用霍夫变换检测图像中的形状
    查看>>
    opencv保存图片路径包含中文乱码解决方案
    查看>>
    OpenCV保证输入图像为三通道
    查看>>
    OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    opencv图像分割2-GMM
    查看>>
    opencv图像分割3-分水岭方法
    查看>>
    opencv图像切割1-KMeans方法
    查看>>
    OpenCV图像处理篇之阈值操作函数
    查看>>
    opencv图像特征融合-seamlessClone
    查看>>