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

标签 java

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/

相关文章:

java - 远程PC数字格式异常: what could be the reason?

java - 安装java的问题

java-每隔一段时间调用一个函数

java - Android:使用 getApplication() 时陷入 ClassCastException,尝试集成 Facebook Friendpicker 示例

Java - 在不知道字符编码的情况下将 byte[] 转换为 String

java - 如何在 COMSOL 中导入 java.security.AccessController?

java - 如何将 char 转换为名为 Guessed 的字母类型的局部变量?

java - OSGi如何安装两个相同的包?

java - 更改 JTable 单元格的复制行为

java - 无法将内部类转换为 Lambda