问题链接:https://www.patest.cn/contests/gplt/L1-2
以下是我的程序:
package Tianti;import java.util.Scanner;public class Main
{
public static void main(String[] args)
{  
Scanner shuru=new Scanner(System.in);
String a=shuru.nextLine();
int b=1;
String[] x=a.split(" ");
for(int i=1;2*i*i-1<=Integer.parseInt(x[0]);i++)
{
b=i;
}
for(int i=0;i<b;i++)
{
for(int y=0;y<i;y++)
{
System.out.print(" ");
}
for(int y=0;y<2*(b-i)-1;y++)
{
System.out.print(x[1]);
}
System.out.println();
if(i==b-1)
{
for(int c=1;c<b;c++)
{
for(int d=0;d<b-c-1;d++)
{
System.out.print(" ");
}
for(int d=0;d<2*(c+1)-1;d++)
{
System.out.print(x[1]);
}
System.out.println();
}
}
}
System.out.println(Integer.parseInt(x[0])-2*b*b+1);

}
}
到底哪错了?

解决方案 »

  1.   

    程序没错,可以运行啊~~~如果要说错的,那就是你的Scanner对象没有close啊。另外,代码要利用工具栏中的“代码”按钮设置一下,便于大家阅读。import java.util.Scanner;public class Test {
    public static void main(String[] args) {
    Scanner shuru = new Scanner(System.in);
    String a = shuru.nextLine();
    int b = 1;
    String[] x = a.split(" ");
    for (int i = 1; 2 * i * i - 1 <= Integer.parseInt(x[0]); i++) {
    b = i;
    }
    for (int i = 0; i < b; i++) {
    for (int y = 0; y < i; y++) {
    System.out.print(" ");
    }
    for (int y = 0; y < 2 * (b - i) - 1; y++) {
    System.out.print(x[1]);
    }
    System.out.println();
    if (i == b - 1) {
    for (int c = 1; c < b; c++) {
    for (int d = 0; d < b - c - 1; d++) {
    System.out.print(" ");
    }
    for (int d = 0; d < 2 * (c + 1) - 1; d++) {
    System.out.print(x[1]);
    }
    System.out.println();
    }
    }
    }
    System.out.println(Integer.parseInt(x[0]) - 2 * b * b + 1); }
    }
    运行结果:
    60 *
    *********
     *******
      *****
       ***
        *
       ***
      *****
     *******
    *********
    11
      

  2.   

    Sorry啊,代码下次会注意的可是我关了Scanner还是没用啊,提交评测还是答案错误,
      

  3.   

    你最好不要用String[] x = a.split(" ");
    因为输入的数据间可能是多个空格分隔的,你的写法不太严谨。
    可以这样:
    int lineNumber=shuru.nextInt();
    String xing=shuru.next();
      

  4.   

    把改后的代码贴出来!
    package Tianti;import java.util.Scanner;public class Main
    {
    public static void main(String[] args)
    {  
    Scanner shuru=new Scanner(System.in);
    int number=shuru.nextInt();
    String a=shuru.next();
    shuru.close();
    int b=1;
    for(int i=1;2*i*i-1<=number;i++)
    {
    b=i;
    }
    for(int i=0;i<b;i++)
    {
    for(int y=0;y<i;y++)
    {
    System.out.print(" ");
    }
    for(int y=0;y<2*(b-i)-1;y++)
    {
    System.out.print(a);
    }
    System.out.println();
    if(i==b-1)
    {
    for(int c=1;c<b;c++)
    {
    for(int d=0;d<b-c-1;d++)
    {
    System.out.print(" ");
    }
    for(int d=0;d<2*(c+1)-1;d++)
    {
    System.out.print(a);
    }
    System.out.println();
    }
    }
    }
    System.out.println(number-2*b*b+1);

    }
    }
      

  5.   

    把改后的代码贴出来!
    package Tianti;import java.util.Scanner;public class Main
    {
    public static void main(String[] args)
    {  
    Scanner shuru=new Scanner(System.in);
    int number=shuru.nextInt();
    String a=shuru.next();
    shuru.close();
    int b=1;
    for(int i=1;2*i*i-1<=number;i++)
    {
    b=i;
    }
    for(int i=0;i<b;i++)
    {
    for(int y=0;y<i;y++)
    {
    System.out.print(" ");
    }
    for(int y=0;y<2*(b-i)-1;y++)
    {
    System.out.print(a);
    }
    System.out.println();
    if(i==b-1)
    {
    for(int c=1;c<b;c++)
    {
    for(int d=0;d<b-c-1;d++)
    {
    System.out.print(" ");
    }
    for(int d=0;d<2*(c+1)-1;d++)
    {
    System.out.print(a);
    }
    System.out.println();
    }
    }
    }
    System.out.println(number-2*b*b+1);

    }
    }怎么又是这样,,,
      

  6.   

    package Tianti;import java.util.Scanner;public class Main
    {
    public static void main(String[] args)
    {  
    Scanner shuru=new Scanner(System.in);
    int number=shuru.nextInt();
    String a=shuru.next();
    shuru.close();
    int b=1;
    for(int i=1;2*i*i-1<=number;i++)
    {
    b=i;
    }
    for(int i=0;i<b;i++)
    {
    for(int y=0;y<i;y++)
    {
    System.out.print(" ");
    }
    for(int y=0;y<2*(b-i)-1;y++)
    {
    System.out.print(a);
    }
    System.out.println();
    if(i==b-1)
    {
    for(int c=1;c<b;c++)
    {
    for(int d=0;d<b-c-1;d++)
    {
    System.out.print(" ");
    }
    for(int d=0;d<2*(c+1)-1;d++)
    {
    System.out.print(a);
    }
    System.out.println();
    }
    }
    }
    System.out.println(number-2*b*b+1);

    }
    }
      

  7.   

    注意:Java 代码需使用 Main 作为主类名
    下面的代码提交成功
    import java.util.Scanner;
    public class Main {
    public static void main(String[] args)  {
    Scanner scanner=new Scanner(System.in);
    int n=scanner.nextInt();
    String c=scanner.next();
    scanner.close();
    int line=(int)Math.sqrt((n+1)/2.0);
    for(int i=line,l=2-line,s=0,h=i;i>=l;--i){
    for(int j=0;j<s;++j)System.out.print(" ");
    if(i<1)h=2-i; else h=i;
    for(int j=0;j<2*h-1;++j)System.out.print(c);
    System.out.println();
    if(i>1)++s; else --s;
    }
    System.out.println(n-2*line*line+1);
    }
    }
    60 *
    *********
     *******
      *****
       ***
        *
       ***
      *****
     *******
    *********
    11