如何解决java代码中的超时错误

如何解决java代码中的超时错误,java,error-handling,Java,Error Handling,如何解决我的java代码中的超时错误: 该代码首先查找元素的倒数,然后查找实际值和倒数之间的差值,如果该差值可被k整除,则增加计数器 请查找以下代码: //all header files are included public class Solution { // Complete the beautifulDays function below. static int beautifulDays(int i, int j, int k) { int co

如何解决我的java代码中的超时错误:

该代码首先查找元素的倒数,然后查找实际值和倒数之间的差值,如果该差值可被k整除,则增加计数器

请查找以下代码:

//all header files are included

public class Solution {

    // Complete the beautifulDays function below.
    static int beautifulDays(int i, int j, int k) {
        int count=0;
for(int a=i;a<=j;a++)
{ 
    int p=a;
    int t=0,r=0;
    while(a>0)
    {
    r=a%10;
     t=t*10+r;
    a=a/10;
}
if((t-p)%k==0)
count++;
    }
    return count;
    }
    // all other code of input and calling methods
//包含所有头文件
公共类解决方案{
//完成下面的beautifulDays功能。
静态整数天(整数i、整数j、整数k){
整数计数=0;
对于(int a=i;a0)
{
r=a%10;
t=t*10+r;
a=a/10;
}
如果((t-p)%k==0)
计数++;
}
返回计数;
}
//输入和调用方法的所有其他代码

本节中有一个无限循环:

for (int a = i; a <= j; a++) { 
    int p = a;
    int t = 0, r = 0;
    while (a > 0) {
        r = a % 10;
        t = t * 10 + r;
        a = a / 10;    //OUCH!
    }
}
for(inta=i;a0){
r=a%10;
t=t*10+r;
a=a/10;//哎哟!
}
}
让我们来分析一下

  • 外部循环将循环变量
    a
    增加
    1
    i
    增加到
    j
  • 内部循环减少相同的循环变量
    a
    ,直到它达到零
猜猜哪一个赢了?(猜不出?试着用铅笔和纸“手工”执行这些循环。这是一个有用的练习。)

这意味着。。。。外环永远不会终止

解决方案:在内部循环中使用不同的循环变量