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

如何以模(10^9 7)格式获得正确的输出?

丌官昊天
2023-03-14

我正在进行代码挑战:

问题描述

给定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 100000000 2

样本输出1 930000007

解释1 (10^8)^2 = 10^16

10^16 % (10^9 7) = 930000007

约束0

0

代码

以下是我的代码:

import java.util.*;

class ModularExponentiation {
    // NOTE: Please do not modify this function
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        int n = sc.nextInt();

        int ans = modularExponentiation(x, n);
        System.out.println(ans);
    }

    // TODO: Implement this method
    static int modularExponentiation(int x, int n) {
        int M = 1000000007;
        long a = (long) Math.pow(x, n);

        long b = a%M;

        return (int)b;
    }
}

当我运行代码时,它在样本测试用例和边缘用例中成功,但在3个基本用例中失败。如何使我的代码在所有测试用例中成功?

共有1个答案

刘嘉木
2023-03-14

这行吗?

    public static int modularExponentiation(int x, int n) {
        int modulo = 1000000007;
        if (n == 0) {
            return 1;
        } else if (n == 1) {
            return x % modulo;
        } else if (n == -1) {
            return 1 / x;
        }
        int p = modularExponentiation(x, n >> 1);
        long product = ((long) p * p) % modulo;
        return (int) (product * modularExponentiation(x, n & 1) % modulo);
    }
 类似资料:
  • 问题内容: 当使用Express for Node.js时,我注意到它输出的HTML代码没有换行符或制表符。尽管下载可能更有效,但在开发过程中可读性不强。 如何获得Express以输出格式正确的HTML? 问题答案: 在您的主要位置或所在位置: 快递4.x 快递3.x 快递2.x 我输入漂亮的字样是因为您希望通过使用“丑陋”来提高效率。在生产中进行部署时,请确保设置环境变量。可以使用您在的“脚本”

  • 这涉及https://stackoverflow.com/help/on-topic中的“软件算法”,在本例中是quicksort排序算法 这是一个来自https://www.hackerrank.com/challenges/quicksort1的练习编码问题(非竞争) 这里是我的分区代码(基于https://courses.cs.washington.edu/courses/cse373/13

  • 问题内容: 我正在Ruby中创建哈希,并希望以正确的格式将其写入JSON文件。 这是我的代码: 这是结果文件的内容: 我正在使用Sinatra(不知道哪个版本)和Ruby v 1.8.7。 如何以正确的JSON格式将其写入文件? 问题答案: 需要JSON库,并使用。 您的temp.json文件现在看起来像:

  • 我正在尝试创建一个检查整数的函数,并将继续循环,直到用户正确输入17或更高的整数。但是,如果我输入错误的输入,例如“K”或“