小编jHN*_*jHN的帖子

如何有效地使用Modulo?

我做了一个(对我来说)非常复杂的任务,我必须在给定n个段时计算最大可能的序列数.

我发现加泰罗尼亚数字表示这个序列,我让它工作n <= 32.我得到的结果应该计算为1.000.000.007.我遇到的问题是"q"和"p"对于一个很长的int而言变得很大而且我在分割"q"和"p"之前不能只修改1.000.000.007因为我会得到不同的结果.

我的问题是,是否有一种非常有效的方法来解决我的问题,还是我必须考虑以不同的方式存储值?我的限制如下: - 仅限stdio.h/iostream - 仅整数 - n <= 20.000.000 - n> = 2

#include <stdio.h>

long long cat(long long  l, long long  m, long long  n);

int main(){
    long long  n = 0;
    long long  val;
    scanf("%lld", &n);

    val = cat(1, 1, n / 2);

    printf("%lld", (val));

    return 0;
}

long long  cat(long long  q, long long  p, long long  n){
    if (n == 0) {
        return (q / p) % 1000000007;
    }
    else {
        q …
Run Code Online (Sandbox Code Playgroud)

c performance store division modulo

8
推荐指数
1
解决办法
193
查看次数

标签 统计

c ×1

division ×1

modulo ×1

performance ×1

store ×1