CCF第二题小明种苹果(续)(Java编写)代码

小白上路,大神自行飘过。
欢迎交流,相互学习。
在这里插入图片描述

package demo;
import java.util.Scanner;
public class 小明种苹果_续 {

public static void main(String[] args) {
	// TODO 自动生成的方法存根
	Scanner input = new Scanner(System.in);
	int N = input.nextInt();
	//定义java锯齿状数组
	int tree[][] = new int[N][];
	int i,j;
	for(i = 0;i < N; i++) {
		int m = input.nextInt();
		tree[i] = new int[m + 1];
		//m不仅作为数组第一列的值,也决定数组横向的长度
		tree[i][0] = m;
		for(j = 1; j < m + 1;j++) {
			tree[i][j] = input.nextInt();
		}
	}
	int T = 0;//剩余总苹果数量
	int D = 0;//发生苹果掉落的苹果树的数量
	int E = 0;//发生相邻掉落的苹果树数量
	int t[] = new int[N];//储存每一颗苹果树苹果的实际数目
	int A[] = new int[N];//储存每一颗苹果树苹果计算上的理论数目,与t[]对比可以确定是否发生掉果
	int k[] = new int[N];//储存掉果标记
	for(i = 0; i < N; i++) {
		t[i] = tree[i][1];
		k[i] = tree[i][1];
		for(j = 1; j < tree[i].length;j++) {
			//对比,若发生掉果,标记并跳入下一循环
			if(tree[i][j] > 0) {
				t[i] = tree[i][j];
				if(t[i] != k[i]) {
					A[i] = 1;
					continue;
				}
				else {
					A[i] = 0;
				}
			}
			else {
				t[i] += tree[i][j];
				k[i] += tree[i][j];
			}
		}
		T += t[i];
	}
	//掉果标记求和求出掉果颗数,模运算求出发生相邻掉果的颗数
	for(i = 0; i < N; i++) {
		if(A[i] == 1) {
			D++;
			if(A[(i + N - 1) % N]  == 1 && A[(i + 1) % N] == 1) {
				E++;
			}
		}
	}
	System.out.println(T + " " + D + " " + E);
	
}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值