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

    你可能感兴趣的文章
    Node.js中环境变量process.env详解
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    Node.js的循环与异步问题
    查看>>
    nodejs libararies
    查看>>
    nodejs 运行CMD命令
    查看>>
    nodejs-mime类型
    查看>>
    nodejs中Express 路由统一设置缓存的小技巧
    查看>>
    NodeJs单元测试之 API性能测试
    查看>>
    nodejs图片转换字节保存
    查看>>
    NodeJs学习笔记001--npm换源
    查看>>
    nodejs配置express服务器,运行自动打开浏览器
    查看>>
    Node入门之创建第一个HelloNode
    查看>>
    Node出错导致运行崩溃的解决方案
    查看>>
    node安装及配置之windows版
    查看>>
    Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
    查看>>
    NOIp2005 过河
    查看>>
    NOPI读取Excel
    查看>>
    NoSQL&MongoDB
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    npm install digital envelope routines::unsupported解决方法
    查看>>