gpt4 book ai didi

java - 从 a^b 右侧查找第 k 位数字的输出未按预期输出?

转载 作者:行者123 更新时间:2023-12-01 21:52:58 25 4
gpt4 key购买 nike

Given two numbers a and b, find kth digit from right of a^b?

问题链接:

http://www.practice.geeksforgeeks.org/problem-page.php?pid=302

我的方法:

我输入了4个数字。首先是测试用例的数量。然后,输入分别是数字a b和k(用空格分隔)。我计算了a^b,然后从右开始搜索每个数字,直到第k位数字不等于计数。如果我让它们相等,我将返回预期的余数。

下面是代码:

public static void main (String[] args) 
{
Scanner sc=new Scanner(System.in);
int T=sc.nextInt();

for(int i=1;i<=T;i++)
{
int count=1;
int a=sc.nextInt();
System.out.print(" ");
int b=sc.nextInt();
System.out.print(" ");
int k=sc.nextInt();
long result=(long) Math.pow(a,b);
if(k!=count)
{
while(k!=count)
{
count++;
int remainder=(int) (result%10);
result=result/10;

}
}
result=result%10;
System.out.println(result);
}
}


GeeksId Output:

Wrong !! Here your code Failed

Input:

7 6 3

And its Correct output is:

6

Eclipse ID:

输入:

7 6 3

输出

6

Wny I am getting Failed on geeksId?Is my solution do not produce correct output?

最佳答案

看来您没有遵循问题的方向。这个问题给了你一些限制。您不对这些进行检查。您应该添加代码来检查这一点,这样它将确保您不会遇到任何异常。

我想指出,您可以将 Math.pow(a,b) 结果转换为字符串,并使用 charAt 打印 length - k 字符功能。这将使事情变得非常容易。并摆脱循环。

该部分的代码是:

String tempString = String.valueOf(result);
System.out.println(tempString.charAt(tempString.length() - k));

希望这能让您朝着正确的方向前进。

关于java - 从 a^b 右侧查找第 k 位数字的输出未按预期输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34869178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com