为什么我的代码在CodeForces上显示“运行时错误”?

时间:2020-05-25 17:17:25

标签: java

问题:https://codeforces.com/contest/1355/problem/A

让我们定义以下重复出现: an + 1 = an + minDigit(an)⋅maxDigit(an)。 minDigit(x)和maxDigit(x)是x的十进制表示形式中的最小和最大数字,不带前导零。有关示例,请参阅注释。

您的任务是为给定的a1和K计算aK。

输入

第一行包含一个整数t(1≤t≤1000),即独立测试用例的数量。

每个测试用例由一行组成,其中包含两个整数a1和K(1≤a1≤1018,1≤K≤1016),并用空格隔开。

输出

对于每个测试用例,请在单独的一行上打印一个整数aK。

示例:

输入:

8

1 4

487 1

487 2

487 3

487 4

487 5

487 6

487 7

输出:

42

487

519

528

544

564

588

628

当我在计算机上的BlueJ中运行它时,我得到了正确的输出,但是在Codeforces上显示“测试1上的运行时错误”。这是我的代码:

import java.util.*;
public class b
{
    static Scanner sc=new Scanner(System.in);
    public static void main()
    {
        long t=sc.nextLong();
        for(int i=0;i<t;i++)
        {
            long a=sc.nextLong();
            long k=sc.nextLong();
            for(long j=1;j<k;j++){
            long c=a,min=9,max=0;
            while(c>0)
            {
                long rem=c%10;
                if(rem<min)
                min=rem;
                if(rem>max)
                max=rem;
                c=c/10;
            }
            a=a+min*max;
        }            System.out.println(a);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您没有正确定义main方法。 Java main方法的正确签名是:

public static void main(String[] args) {
    // Code goes here
}