当前位置: 首页 > 知识库问答 >
问题:

做模10^9+7的正确方法是什么?

柳德义
2023-03-14

如何为下面的代码获得正确的模。我被困在这里了。我正在使用类型转换来获得结果。我需要返回int。正确的方式是什么。

int m = 1000000007;
long res=0L;
if(numOne > 3)
  res = (parts[1] - parts[0]) * (parts[3] - parts[2]);
return (int)res%m;  
res = (long)(parts[1] - parts[0]) * (long)(parts[3] - parts[2]);

共有1个答案

印辉
2023-03-14

在乘法之前使用模,因为当前的实现在某些情况下可能会溢出:

int m = 1000000007;
long res = 0L;
if (numOne > 3)
    res = ((parts[1] - parts[0] + m) % m) * ((parts[3] - parts[2] + m) % m);
return res % m;

参考:这里

 类似资料:
  • 我正在进行代码挑战: 问题描述 给定2个整数x和n,您必须计算x的n次方,模10^9 7,即计算(x^n)%(10^9 7)。 换句话说,你必须找到当x提高到n的幂时的值,然后用10^9 7取模。 当a除以b时,a%b表示余数。例如,5%3=2,当我们将5除以3时,2是余数。 注意10^9也表示为1e9。 输入格式一行输入,包含两个空格分隔的整数x和n。 输出格式打印所需的答案。 样本输入1 10

  • 问题内容: 我正在Heroku上编写一个node.js应用程序,并使用pg模块。我无法弄清楚为查询数据库所需的每个请求获取客户端对象的“正确”方法。 该文档使用如下代码: 但是,您肯定不需要在使用数据库的每个函数中调用对吗?我看过其他执行此操作的代码: 我倾向于第二种选择,因为我相信Heroku的免费数据库实例无论如何都仅限于一个连接,但是以这种方式进行操作是否有任何弊端?每次使用之前,是否需要检

  • 问题内容: 这个问题应该比关于更多。 我有一个子类(在python 2.7中,numpy 1.6.2),并且我发现在对象时未列出的字段名称(因此,ipython的自动完成功能无效)。 为了修复它,我尝试在子类中重写,如下所示: 结果是:。(我发现这里实际上应该在python 3.3中工作…) 作为一种解决方法,我尝试了: 据我所知,这是可行的,但当然并不优雅。 问题: 后一种解决方案对我而言是否正

  • 问题内容: 在UML图上,代表模板类的正确方法是什么? 问题答案: 在右上角带有虚线矩形的普通矩形,代表模板参数。像这样:

  • 问题内容: 即使在使用Java Swing一年以上之后,对我来说,它仍然像魔术一样。如何正确使用BufferStrategy,尤其是方法? 我想添加一个JFrame和一个Canvas,然后进行绘制。我还希望能够调整()画布的大小。每次我调整Canvas的大小时,似乎都会被浪费掉,或者变得毫无用处,因为在上使用并没有真正做任何事情。另外,它具有怪异的不确定性行为,我不知道如何正确同步它。 这就是我的

  • 问题内容: 我想在Linux上使用该机制。我希望我的应用程序知道何时更改了文件。能否请您提供给我一个示例,该怎么做? 问题答案: 文档(来自具有inotify的Monitor文件系统活动) 在C API 提供了三个系统调用来构建各种文件系统监视器: 在内核中创建子系统的实例,并在成功和失败时返回文件描述符。与其他系统调用一样,如果失败,请检查诊断。 顾名思义,它增加了一块 手表 。每个监视都必须提