package xiaomi; import java.util.Scanner; public class game { //2048游戏,输出左移的矩阵 public void turnleft(){ } public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt();//几行数据 int[][] matrix=new int[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ matrix[i][j]=sc.nextInt(); } } for(int j=0;j<n;j++){ compile(matrix[j]); } //第二步的除0,双指针除0 for(int j=0;j<n;j++){ dezero(matrix[j]); } //输出 for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ System.out.print(matrix[i][j]+" "); } System.out.println("\n"); } } //用于进行数字合并 public static void compile(int[] num){ for(int i=0;i<num.length-1;i++){ if(num[i]==num[i+1]){ num[i]=2*num[i]; num[i+1]=0; } } } public static void dezero(int[] num) { // 除0 //快慢指针 for(int i=0;i<num.length;i++){ if(num[i]==0){ int j=i+1; while(j<num.length){ if(num[j]!=0){ num[i]=num[j]; num[j]=0; break; } j++; } } } } }