问题: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);
}
}
}
答案 0 :(得分:0)
您没有正确定义main
方法。 Java main方法的正确签名是:
public static void main(String[] args) {
// Code goes here
}