ccf 用java实现 小明种苹果数(续)

别等时光非礼了梦想. 提交于 2020-02-25 21:18:16

题目

在这里插入图片描述
在这里插入图片描述

代码

package fushi;

import java.util.Scanner;

//小明种苹果(续)
public class test4 {
	//判断是否为负数
	static boolean judge(int n) {
		if(n<=0) {
			return true;
		}else {
			return false;	
		}
	}
	//判断树是否为有掉落
	static boolean has(int n) {
		if(n==1) {
			return true;
		}else {
			return false;
		}
	}
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in); 
		String s = scan.nextLine();
		int N = Integer.parseInt(s);//苹果数的棵树
		int[] A = new int[N];//每一棵树 操作的轮次
		int[] B = new int[N];//第一轮开始前的苹果数
		int T = 0;//所有操作完成后,所有苹果树上剩下的苹果总数
		int[] DD = new int[N];//每棵树的是否掉落
		int D = 0;//有掉落的树的数量
		int E = 0;//相邻连续三棵树发生苹果掉落情况的组数
		
		//获取每棵树的信息(每一行)
		for (int i = 0; i < N; i++) {
			String[] t = scan.nextLine().split(" ");
			A[i] = Integer.parseInt(t[0]);
			B[i] = Integer.parseInt(t[1]);
			for (int j = 2; j <= A[i]; j++) {
				int d = Integer.parseInt(t[j]);//从每一行的第三个数开始
				if(judge(d)) {
					B[i]+=d;
				}else {
					if(B[i]>d) {//判断是否有苹果掉落
						DD[i] = 1;
					}
					B[i] = d;
				}
			}
			T+=B[i];
			
			D+=DD[i];//有掉落的树的数量
		}
		//统计有连续三个掉落的组数
		for (int i = 0; i < N; i++) {
			if(has(DD[i])&&has(DD[(i+1)%N])&&has(DD[(i+2)%N])) {
				E++;				
			}
		}
		System.out.println(T+" "+D+" "+E);						
//		for (int i = 0; i < N; i++) {
//			System.out.println(A[i]+","+B[i]);
//		}
//		System.out.println(T);	
//		for (int i = 0; i < N; i++) {
//			System.out.print(DD[i]+" ");
//		}			
	}
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!