java CSP测试里小明上学问题
怎么解决呢?
我用了两个数组,一个一维数组存储r,y,g,n,另一个二维数组存储k,t,两个数组分别通过for循环从键盘输入进行取值存储。通过函数count.countNumber(arryOne,arryTwo)将两个数组传进去计算。函数里通过for循环遍历二维数组第一列,用if判断k的值,如果k是3则是绿灯,不需要等直接过所以sum加0;
sum+=0;
如果k是2则是黄灯,sum除了加黄灯的时间还要加黄灯过后红灯的时间
sum+=Two[i][1]+One[0];
如果k是1则是红灯,sum要加等红灯的时间
sum+=Two[i][1];
最后输出sum就好啦
完整代码如下
import java.util.Scanner;
class CountTime{
int sum=0;
void countNumber(int[] One,int[][] Two) {
for(int i=0;i<One[3];i++) {
if(Two[i][0]==3) {
sum+=0;
}
else if(Two[i][0]==2){
sum+=Two[i][1]+One[0];
}else {
sum+=Two[i][1];
}
}
System.out.println(sum);
}
}
public class GoSchool {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int[] arryOne=new int[4];
for(int i=0;i<arryOne.length;i++) {
arryOne[i]=scan.nextInt();
}
int[][] arryTwo=new int[arryOne[3]][2];
for(int i=0;i<arryOne[3];i++) {
for(int j=0;j<2;j++) {
arryTwo[i][j]=scan.nextInt();
}
}
scan.close();
CountTime count=new CountTime();
count.countNumber(arryOne,arryTwo);
}
}
不足之处还请多多指教。