Java 如何打印随机数的菱形?
有人能帮我完成这个数字钻石吗?我有右边的钻石打印出来,但我有麻烦打印出来的左边。如果有人能帮忙,我会非常感激。 我对代码做了一些更改。现在我需要我的代码来打印一个列在中间的钻石,而不是两个。< /P>Java 如何打印随机数的菱形?,java,ascii-art,Java,Ascii Art,有人能帮我完成这个数字钻石吗?我有右边的钻石打印出来,但我有麻烦打印出来的左边。如果有人能帮忙,我会非常感激。 我对代码做了一些更改。现在我需要我的代码来打印一个列在中间的钻石,而不是两个。< /P> 公共类数字钻石{ 公共静态void main(字符串[]args){ /* 1 1 4 3 4 2 4 4 5 7 4 3 5 3 5 4 4 5 */ int noOfColumns=1; int noOfSpaces=3;
公共类数字钻石{
公共静态void main(字符串[]args){
/*
1 1
4 3 4 2
4 4 5 7 4 3
5 3 5 4
4 5
*/
int noOfColumns=1;
int noOfSpaces=3;
int start=0;
对于(int i=1;i=1;j--){
系统输出打印(“”);
}
对于(intj=1;j当你在屏幕上写东西时,按行思考。
在第一行和最后一行中,打印1个随机数。在第二行和第四行中,打印3个随机数。在中间行中,打印5个随机数。
可以使用制表符或空格将数字放置到其位置
Random rnd=new Random();
对于(int i=0;i<5;i++){
如果(0==i | | 4==i)System.out.println(“\t\t”+(rnd.nextInt(5)+1)+”\t\t\t”+(i+1));
如果(1==i | | 3==i)System.out.println(“\t”+(rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t\t”+(i+1));
if(2==i)System.out.println((rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t”+(rnd.nextInt(5)+1)+“\t”+);
}
类似于此。要打印菱形,可以使用两个嵌套for循环(或流)在从-n
到n
的行和列上。当n>iAbs+jAbs
时获得菱形。单元格的值取决于其坐标i
和j
,也可以是某种常量或随机值:
int n=5;
for(inti=-n;i IntStream.rangeClosed(-n,n)
//“j”的绝对值
.map(数学::abs)
//菱形(单元值=n-i-j)
.mapToObj(j->i+j>n?“:”+(n-i-j))
.forEach(系统输出::打印))
.mapToObj(i->“i=“+i”)
.forEach(System.out::println);
输出:
5 i=5
5 4 5 i=4
5 4 3 4 5 i=3
5 4 3 2 3 4 5 i=2
5 4 3 2 1 2 3 4 5 i=1
5 4 3 2 1 0 1 2 3 4 5 i=0
5 4 3 2 1 2 3 4 5 i=1
5 4 3 2 3 4 5 i=2
5 4 3 4 5 i=3
5 4 5 i=4
5 i=5
0 i=5
0 1 0 i=4
0 1 2 1 0 i=3
0 1 2 3 2 1 0 i=2
0 1 2 3 4 3 2 1 0 i=1
0 1 2 3 4 5 4 3 2 1 0 i=0
0 1 2 3 4 3 2 1 0 i=1
0 1 2 3 2 1 0 i=2
0 1 2 1 0 i=3
0 1 0 i=4
0 i=5
另见:
•
•