当前位置:首页 » 编程语言 » java反转数组

java反转数组

发布时间: 2023-06-16 19:46:45

java 反转数组

import java.util.*;

public class TurnChessboard
{
static void printArray(int[][] s)
{
for(int[] i:s)
{
for(int j:i)
System.out.printf("%2d",j);
System.out.println("");
}
}

static int turn(int i)
{
if(i==0)
return 1;
else
return 0;
}

public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int m,n;
System.out.println("请输入行数和列数(必须是奇数):");
m=in.nextInt();
n=in.nextInt();
while(m%2==0||n%2==0)
{
System.out.println("非法的输入!请重试:");
m=in.nextInt();
n=in.nextInt();
}
int[][] cbd=new int[m][n];
int[] role=new int[m];
int[] cole=new int[n];
int count=0,tempcount=0;
int i,j;
System.out.printf("请输入一个%d*%d棋盘:\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
cbd[i][j]=in.nextInt();
if(m<=n)
{
for(i=0;i<m;i++)
for(j=0;j<n;j++)
role[i]+=cbd[i][j];
for(i=0;i<m;i++)
if(role[i]%2==1)
{
for(j=0;j<n;j++)
cbd[i][j]=turn(cbd[i][j]);
count++;
System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);
printArray(cbd);
}
for(j=0;j<n;j++)
for(i=0;i<m;i++)
cole[j]+=cbd[i][j];
for(int t1:cole)
if(t1%2==1)
tempcount++;
if(tempcount%2==0)
{
for(j=0;j<n;j++)
if(cole[j]%2==1)
{
for(i=0;i<m;i++)
cbd[i][j]=turn(cbd[i][j]);
count++;
System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);
printArray(cbd);
}
System.out.printf("\n需要进行%d次翻转\n",count);
}
else
System.out.printf("\n不能通过有限的反转使行或列的1的个数为偶数!\n");
}
else
{
for(j=0;j<n;j++)
for(i=0;i<m;i++)
cole[j]+=cbd[i][j];
for(j=0;j<n;j++)
if(cole[j]%2==1)
{
for(i=0;i<m;i++)
cbd[i][j]=turn(cbd[i][j]);
count++;
System.out.printf("第%d次翻转后的棋盘(变换第%d列):\n",count,j+1);
printArray(cbd);
}
for(i=0;i<m;i++)
for(j=0;j<n;j++)
role[i]+=cbd[i][j];
for(int t2:role)
if(t2%2==1)
tempcount++;
if(tempcount%2==0)
{
for(i=0;i<m;i++)
if(role[i]%2==1)
{
for(j=0;j<n;j++)
cbd[i][j]=turn(cbd[i][j]);
count++;
System.out.printf("第%d次翻转后的棋盘(变换第%d行):\n",count,i+1);
printArray(cbd);
}
System.out.printf("\n需要进行%d次翻转\n",count);
}
else
System.out.printf("\n不能通过有限的翻转使行或列的1的个数为偶数!\n");
}
}
}

呀,真麻烦,本来以为一会就能写出来呢

② java怎么把list元素倒转

这个比较简单:
ArrayList<String> list=new ArrayList<String>();
for(int i=0;i<=5;i++){
list.add("num"+i);
}

StringBuilder b = new StringBuilder(list.toString());

System.out.println(b.reverse());
好多方法,不会问我

热点内容
编译好的内核如何升级另一台主机 发布:2025-05-15 02:00:06 浏览:757
弹反脚本 发布:2025-05-15 01:58:24 浏览:586
安卓按键大师怎么用 发布:2025-05-15 01:54:12 浏览:687
手机ea服务器连不上怎么办 发布:2025-05-15 01:35:03 浏览:450
数据库数据插入语句 发布:2025-05-15 01:30:01 浏览:871
js是无需编译直接运行吗 发布:2025-05-15 01:28:30 浏览:476
android文件夹重命名 发布:2025-05-15 01:13:50 浏览:481
cns脚本 发布:2025-05-15 01:13:38 浏览:722
数据结构与算法笔试题 发布:2025-05-15 01:04:20 浏览:417
搜狗输入法如何直接编辑配置文件 发布:2025-05-15 00:51:47 浏览:668