问题链接: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);
}
}
到底哪错了?
以下是我的程序:
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);
}
}
到底哪错了?
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
因为输入的数据间可能是多个空格分隔的,你的写法不太严谨。
可以这样:
int lineNumber=shuru.nextInt();
String xing=shuru.next();
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);
}
}
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);
}
}怎么又是这样,,,
{
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);
}
}
下面的代码提交成功
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