博客
关于我
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/

    你可能感兴趣的文章
    Netty的Socket编程详解-搭建服务端与客户端并进行数据传输
    查看>>
    Netty的网络框架差点让我一夜秃头,哭了
    查看>>
    Netty相关
    查看>>
    Netty简介
    查看>>
    Netty线程模型理解
    查看>>
    netty解决tcp粘包和拆包问题
    查看>>
    Netty速成:基础+入门+中级+高级+源码架构+行业应用
    查看>>
    Netty遇到TCP发送缓冲区满了 写半包操作该如何处理
    查看>>
    netty(1):NIO 基础之三大组件和ByteBuffer
    查看>>
    Netty:ChannelPipeline和ChannelHandler为什么会鬼混在一起?
    查看>>
    Netty:原理架构解析
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    Network 灰鸽宝典【目录】
    查看>>
    Networkx写入Shape文件
    查看>>
    NetworkX系列教程(11)-graph和其他数据格式转换
    查看>>
    Networkx读取军械调查-ITN综合传输网络?/读取GML文件
    查看>>
    network小学习
    查看>>
    Netwox网络工具使用详解
    查看>>
    Net与Flex入门
    查看>>