7-3 画菱形 (10 分)
PTA java
菱形是一种特殊的平行四边形,是四条边均相等的平行四边形。题目给出菱形的边长n,用*画出菱形。如n=1,输出:
n=2,输出:
*
***
*
n=3,输出:
*
***
*****
***
*
那么,你能用程序来实现么?
输入格式:
输入菱形的边长n,1<n<100。
输出格式:
输出对应的用*表示的菱形。
输入样例:
4
输出样例:
*
***
*****
*******
*****
***
*
AC代码
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
String s="******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************";
int j;
for(int i=1;i<=n;i++) {
for(j=1;j<=n-i;j++) {
System.out.printf(" ");
}
System.out.printf(s.substring(0,i*2-1));
/*for(j=1;j<=i*2-1;j++) {
System.out.printf("*");
}*/
System.out.println();
}
for(int i=1;i<=n-1;i++) {
for(j=1;j<=i;j++) {
System.out.printf(" ");
}
System.out.printf(s.substring(0,(n-i)*2-1));
/*for(j=1;j<=(n-i)*2-1;j++) {
System.out.printf("*");
}*/
System.out.println();
}
}
}
好家伙我TM直接好家伙
400ms的时间我确实头一次见
首先考虑到
在注释掉的那部分
好家伙我TM直接好家伙
最后两个测试点超时
赌狗赌了十几次
只能把最后一个测试点赌通过
没有办法了
搜了搜输出怎么优化
oh上帝
我没搜到
所以
字符串
走起
(字符串里的 * 200个就够了)
(但是我并不清楚按了多少个hhh)