小明种苹果
package practice;
import java.awt.print.Printable;
import java.util.Scanner;
public class test190902 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();//多少棵树
int[] total = new int[N];//存总数量,数组的目的是每次判断是否有检查的,输入的数是否为正数的
int drop = 0;//多少棵树有掉落
int[] drops = new int[N];//存储有掉落的树,以便于判断连续性
for (int i = 0; i < N; i++) {
int M = sc.nextInt();//次数
int begin = sc.nextInt();//刚开始苹果的总数
total[i] = begin;
for (int j = 0; j < M-1; j++) {//每轮输入
int a = sc.nextInt();
if (a<=0) {//若为负数或者0,则减去
total[i] +=a;
}else {//若为正数
if (total[i]>a) {//是否有掉落
if (drops[i]==0) {//有则此树掉落
drops[i]++;//判断次数有过一次掉落的话,后面的掉落不计入总次数
}
}
}
}
}
int totals = 0;
for (int i = 0; i < total.length; i++) {
totals += total[i];
}
int continues = 0;
for (int i = 0; i < drops.length; i++) {//判断相邻,直接生算,算左右是否相等。
if (drops[i]==1) {
drop++;
}
if (i==0) {
if (drops[i]==1&&drops[i]==drops[i+1]&&drops[i]==drops[drops.length-1]) {
continues++;
}
}else if (i==drops.length-1) {
if (drops[i]==1&&drops[i]==drops[i-1]&&drops[i]==drops[0]) {
continues++;
}
}else {
if (drops[i]==1&&drops[i]==drops[i-1]&&drops[i]==drops[i+1]) {
continues++;
}
}
}
System.out.print(totals+" ");
System.out.print(drop+" ");
System.out.print(continues);
}
}
总结:考虑需要全面一些,用数组记录数量真的方便。代码尽量从简。