版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a17865569022/article/details/82191383
这道题目利用C的思路解决即可,但是要注意最后的格式输出,换行要么用println,要么用printf(“……%n”)输出。
import java.util.*;
public class Main {
private static final int M = -0x3f3f3f3f;
private static Scanner in;
public static void main(String[] args)
{
in=new Scanner (System.in);
int t=in.nextInt();
for(int i=1;i<=t;i++)
{
int n=in.nextInt();
int x=1,y=1,s=1;int sum=0,Max=M;
for(int j=1;j<=n;j++)
{
int e=in.nextInt();
sum+=e;
if(Max<sum)
{
Max=sum;
x=s;
y=j;
}
if(sum<0)
{
sum=0;
s=j+1;
}
}
System.out.printf("Case %d:%n", i);
System.out.printf("%d %d %d%n",Max,x,y);
if(i!=t) System.out.println();
}
}
}