CSP 試題編號201803-2 Java實現
阿新 • • 發佈:2018-09-14
for scan print NPU == 運動 結果 next sta
package HB;
import java.util.Scanner;
public class Test_06 {
public static void main(String[] args) { Scanner input = new Scanner(System.in); int []data = new int[3]; for(int i=0;i<data.length;i++){ data[i] = input.nextInt(); } //第二列表示每個小球的運動方向 右1左0 int [][]num = new int[data[0]][2]; for(int i=0;i<num.length;i++){ num[i][0] = input.nextInt(); num[i][1] = 1; } //時間片走完 輸出結果 while(data[2]!=0){ data[2]--; for(int i=0;i<num.length;i++){ //首先確定這一秒各自的位置 if(num[i][1]==1){ num[i][0]++; } else{ num[i][0]--; } } //檢查有木有走到端點的 for(int i=0;i<num.length;i++){ //左端 向右變向 if(num[i][0]==0){ num[i][1] = 1; } //右端 向左變相 else if(num[i][0]==data[1]){ num[i][1] = 0; } } //檢查有木有小球碰撞 int temp = 0; for(int i=0;i<num.length;i++){ temp = num[i][0]; for(int j=i+1;j<num.length;j++){ if(temp == num[j][0]){ //反方向變向 if(num[i][1]==1){ num[i][1]=0; } else{ num[i][1]=1; } if(num[j][1]==1){ num[j][1]=0; } else{ num[j][1]=1; } } } } } for(int i=0;i<num.length;i++){ System.out.print(num[i][0]+" "); } }
}
CSP 試題編號201803-2 Java實現