在第一题的基础上就可以继续写了,由于每行输入的数字数量不确定,所以把每行存入字符串里。之后3个答案分别计算
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
int n = Integer.parseInt(s1);
String [] s = new String[n];
for (int i = 0; i < s.length; i++) {
s[i] = sc.nextLine();
}
int t=0,d=0,e=0;
for (int i = 0; i < n; i++) {
String [] a = s[i].split(" ");
for (int j = a.length-1; j > 0 ; j--) {//从后往前看最小正整数
if(Integer.parseInt(a[j])>0)
{
for (int j2 = j; j2 < a.length; j2++) {
t += Integer.parseInt(a[j2]);
}
break;
}
}
}//计算t
int num1 = 0,num2 = 0;//苹果个数
int[] b = new int [n];//标记掉果树,0为没掉,1为掉了
for (int i = 0; i < b.length; i++) {
b[i] = 0;
}
for (int i = 0; i < n; i++) {
String [] a = s[i].split(" ");
outer: for (int j = 1; j < a.length; j++) {
if(Integer.parseInt(a[j])>0)
{
num1 = Integer.parseInt(a[j]);//记住它,num1为前一个正整数
for (int j2 = j+1; j2 < a.length; j2++) {
if(Integer.parseInt(a[j2])>0)
{
num2 = Integer.parseInt(a[j2]);//num2为后一个正整数
for (int k = j+1; k < j2; k++) {
num1 += Integer.parseInt(a[k]);
}
if(num1>num2)
{
d++; //d统计
b[i]++; //在b[]中标记为1
break outer;
}
j = j2;
}
}
}
}
}//计算掉果树的棵树d
for (int i = 0; i <= b.length-3; i++) { //有无连续3个掉果树
if(b[i]==1 && b[i+1]==1 && b[i+2]==1)
{
e++;
}
}
if(b[b.length-1]==1 && b[0]==1 && b[1]==1) //首尾端有无连续3个掉果树
{
e++;
}
if(b[b.length-2]==1 && b[b.length-1]==1 && b[0]==1) //首尾端有无连续3个掉果树
{
e++;
}
//计算连续3棵情况有多少
System.out.println(t+" "+d+" "+e);
}
}