思路:设座标原点为 0,0 设菱长为 len 则纵轴横座标也是 len 则最大横座标及总行数都是len*2那第i行的第一个实心点 x的横座标是 len-i的绝对值(len指纵轴横座标) 则第i行的第二个实心点 y 的横座标是 len+(len-x) (len同上,x指x点的横座标)循环判断第i行的每一个点是不是 x 或 y点,如果是,则输出 * ,否则输出汉字空格。注意 len 为两个 * 之间的距离,所以三个* 是两个长度
- public class Test {
- public static void main(String args[]){
-
- public static void main(String[] args) {
- int len=2; //菱长
- String outstr=" "; //输出
- int i,j,x,y;
- for(i=0;i <=len*2;i++)
- {
- for(j=0;j <=len*2;j++)
- {
- x=len-i;
- x=x <0?-1*x:x;
- y=len+(len-x);
- outstr+=(j==x||j==y? "*": " ");
- }
- outstr+= "
";
- }
- System.out.println(outstr);
- }
- }