求助:JAVA 打印矩阵。输入为1,输出如下三维矩阵;输入为2时,输出五维矩阵;输入为3时,输出为七维矩阵。 本帖最后由 JuncaiLiao 于 2012-02-09 11:20:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 中間數是n+1然後縱或橫走出去,每一步減一,減到一為止用二維數組 每個點x,y 數值 v, 中心點(X,Y)v=n+1-abs(X-x)-abs(Y-x)if v<1 v=1自己試試看吧。 public class Test1{ public static void main(String[] args){ printRect(3); } static void printRect(int n){ int size = n * 2 + 1; int[][] arrays = new int[size][size]; //获取上半部分 for(int i = 0;i < size;i++){ for(int j = 0;j <= size / 2;j++){ if(i <= size / 2){ if(i + j > n){ //横纵下标之和大于n元素的值为“下标之和 - 数组长度的一半 + 1“ arrays[i][j] = arrays[i][size - j - 1] = i + j - size / 2 + 1;//左右对称 } else arrays[i][j] = arrays[i][size - j - 1] = 1; } } } //翻转获取下半部分,上下对称 for(int i = size / 2;i < size;i++){ for(int j = 0;j < size;j++){ arrays[i][j] = arrays[size - i - 1][j]; } } //输出 for(int i = 0;i < size;i++){ for(int j = 0;j < size;j++){ System.out.print(arrays[i][j] + " "); } System.out.println(); } }} 关于protected java String 乱码问题 高手帮帮忙 缺少类文件? JPanel上的组件获得焦点时JPanel怎样才能被通知到啊? java 五子棋 怎样保存以放上的棋子的坐标点 求两个日期之间相差的天数 数据库是MYSQL 刚学java不会的问题,求救 求助??如何改变字体大小?? ++++ 按照书本打一程序,报错,请帮忙 ++++ set集合如何去除重复的对象 如何区别子类和父类
然後縱或橫走出去,每一步減一,減到一為止用二維數組 每個點x,y 數值 v, 中心點(X,Y)
v=n+1-abs(X-x)-abs(Y-x)
if v<1 v=1自己試試看吧。
public static void main(String[] args){
printRect(3);
}
static void printRect(int n){
int size = n * 2 + 1;
int[][] arrays = new int[size][size];
//获取上半部分
for(int i = 0;i < size;i++){
for(int j = 0;j <= size / 2;j++){
if(i <= size / 2){
if(i + j > n){
//横纵下标之和大于n元素的值为“下标之和 - 数组长度的一半 + 1“
arrays[i][j] = arrays[i][size - j - 1] = i + j - size / 2 + 1;//左右对称
}
else
arrays[i][j] = arrays[i][size - j - 1] = 1;
}
}
}
//翻转获取下半部分,上下对称
for(int i = size / 2;i < size;i++){
for(int j = 0;j < size;j++){
arrays[i][j] = arrays[size - i - 1][j];
}
}
//输出
for(int i = 0;i < size;i++){
for(int j = 0;j < size;j++){
System.out.print(arrays[i][j] + " ");
}
System.out.println();
}
}
}