我正在尝试用java绘制此表单: 对于n = 4:
*******
*** ***
** **
* *
但我能得到的就是:
对于n = 4:
**** ****
*** ***
** **
* *
这是代码:
public class test1 {
public static void main(String[] args) {
int n;
System.out.print("Entrer n:");
Scanner x = new Scanner(System.in);
n=x.nextInt();
for(int i=0; i<n; i++) {
System.out.print("*");
for(int j=0; j<n-1-i; j++) {
System.out.print("*");
}
for(int k=0; k<n/2; k++) {
System.out.print(" ");
}
for(int j=0; j<n-i; j++) {
System.out.print("*");
}
System.out.println("");
}
}
}
有人可以帮助我,谢谢。
答案 0 :(得分:3)
如果我正确理解规范,应该这样做:
int n = 4;
for(int i = 0; i < n ; i++)
{
for(int j = 0 ; j < n-i ; j++)
{
System.out.print("*");
}
for(int j = 0 ; j < i*2-1 ; j++)
{
System.out.print(" ");
}
for(int j = i==0?1:0 ; j < n-i ; j++)
{
System.out.print("*");
}
System.out.print("\n");
}
n = 1时:
*
N = 4:
*******
*** ***
** **
* *
N = 6:
***********
***** *****
**** ****
*** ***
** **
* *
答案 1 :(得分:0)
循环中的问题在这部分
for(int k=0; k<n/2; k++) {
System.out.print(" ");
}
解决方案:
for (int k = 0; k < i*2; k++) { // solved
System.out.print(" ");
}
您需要的空格数等于您的行的索引,因此您的行索引位于“i”变量
在第0行,你需要0个空格
第1行你需要2个空格
在第2行你需要4个空格
等等