A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋闪 中级黑马   /  2014-12-21 11:00  /  1449 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class LingXing
{
        public static void main(String[] args)
        {
                for (int x=0;x<4;x++ )
                {
                        for (int y=x;y<3;y++)
                        {
                                System.out.print(" ");
                        }
                        for (int z=0; z<=x;z++ )
                        {
                                System.out.print("*");
                        }
                        for (int m=1;m<=x;m++)
                        {
                                System.out.print("*");
                        }
                        System.out.println();
                }
                for (int x=0; x<3;x++)
                {
                        for (int y=0; y<=x;y++)
                        {
                                System.out.print(" ");
                        }
                        for (int z=x; z<3;z++ )
                        {
                                System.out.print("*");
                        }
                        for (int m=x;m<2;m++)
                        {
                                System.out.print("*");
                        }
                        System.out.println();
                }
        }
}
这是我费了九牛二虎之力写出来的一个由*组成的菱形,求简单的,或者提供一个思虑都行,,

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

14 个回复

倒序浏览
简单的办法:
  1. public static void printImg4(int num){
  2.         for (int i=1;i<=num;i++){
  3.             for(int j=1;j<=num-i;j++)
  4.                 System.out.print(" ");
  5.             for(int j=1;j<=i;j++)
  6.                 System.out.print("* ");
  7.             System.out.println();
  8.         }
  9.         for (int i=1;i<=num-1;i++){
  10.             for(int j=1;j<=i;j++)
  11.                 System.out.print(" ");
  12.             for(int j=1;j<=num-i;j++)
  13.                 System.out.print("* ");
  14.             System.out.println();
  15.         }
复制代码

必须打印充满的矩形:
  1.     public static void printDiamond(int  num){
  2.         for (int i=1;i<=num;i++){
  3.             for(int j=1;j<=num-i;j++)
  4.                 System.out.print(" ");
  5.             for(int j=1;j<=i*2-1;j++)
  6.                 System.out.print("*");
  7.             System.out.println();
  8.         }
  9.         for (int i=1;i<=num-1;i++){
  10.             for(int j=1;j<=i;j++)
  11.                 System.out.print(" ");
  12.             for(int j=1;j<=(num-i)*2-1;j++)
  13.                 System.out.print("*");
  14.             System.out.println();
  15.         }
  16.     }
复制代码
回复 使用道具 举报
  1. class ClassDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //打印菱形的规格
  6.                 print(8);
  7.         }
  8.         //打印菱形
  9.         public static void print(int a)
  10.         {
  11.                 //上半部分
  12.                 for (int x = 1;x <= a ;x++ )
  13.                 {
  14.                         for (int y =x;y <= a ;y++ )
  15.                         {
  16.                                 System.out.print(" ");
  17.                         }
  18.                         for (int z=1;z<x+x ;z++ )
  19.                         {
  20.                                 System.out.print("*");
  21.                         }
  22.                         System.out.println();
  23.                 }
  24.                 //下半部分
  25.                 for (int x=a+1;x>0 ;x-- )
  26.                 {
  27.                         for (int i =x;i<=a ;i++ )
  28.                         {
  29.                                 System.out.print(" ");
  30.                         }
  31.                         for (int y=0;y<x+x-1 ;y++ )
  32.                         {
  33.                                 System.out.print("*");
  34.                         }
  35.                         System.out.println();
  36.                 }
  37.         }
  38.                
  39. }
复制代码
回复 使用道具 举报
楼上 的做法也没什么简约性啊,我也是按楼主的做法弄的,同求直接简单的方法
回复 使用道具 举报
  1. public class Test04 {
  2.         public static void main(String[] args) {

  3.                 for (int i = 0; i <= 7; i++) {
  4.                         if (i <4) {

  5.                                 for (int j = 1; j <= 4 - i-1; j++) {
  6.                                         System.out.print(" ");
  7.                                 }
  8.                                 if (i == 0) {
  9.                                         System.out.print("*");
  10.                                 } else {
  11.                                         for (int j2 = 1; j2 <=3 * (i); j2++) {
  12.                                                 System.out.print("*");
  13.                                         }
  14.                                 }
  15.                         } else if(i >4){
  16.                                 for (int j = 1; j <=i-4; j++) {
  17.                                         System.out.print(" ");
  18.                                 }
  19.                                 if ((7-i) == 0) {
  20.                                         System.out.print("*");
  21.                                 } else {
  22.                                         for (int j2 = 1; j2 <= 3 * (7-i); j2++) {
  23.                                                 System.out.print("*");
  24.                                         }
  25.                                 }
  26.                         }else {
  27.                                 continue;
  28.                         }

  29.                         System.out.println();
  30.                 }
  31.         }
  32. }
复制代码


这个代码简单,但是有点难理解,希望能适合你
回复 使用道具 举报
  1. public class DiamondTest {
  2.         public static void main(String[] args) {
  3.                 int m,n;
  4.                 for(m=0;m<=8;m++){
  5.                         for(n=0;n<=8;n++){
  6.                                 if((m<=n+4)&&(m>=4-n)&&(m<=12-n)&&(m>=n-4)){
  7.                                         System.out.print("*");
  8.                                 }else{
  9.                                         System.out.print(" ");
  10.                                 }
  11.                         }
  12.                         System.out.println();
  13.                 }
  14.         }
  15. }
复制代码


这是我们班一个同学写的,你看能看懂不,反正我没看懂,不管代码量上来说是很简单,看懂了也告诉我下
回复 使用道具 举报
学习了。学习了。好强。
回复 使用道具 举报
用for循环写两个等腰三角形,一个正的一个倒的,连到一起就行了吧。
回复 使用道具 举报
宋闪 中级黑马 2014-12-24 16:29:12
9#
谢谢!!!!!!!!!!!!!
回复 使用道具 举报
天天小志 发表于 2014-12-22 23:30
这是我们班一个同学写的,你看能看懂不,反正我没看懂,不管代码量上来说是很简单,看懂了也告诉我下 ...

我想你的同学肯定数学比较好,而且一定以前研究过菱形的坐标问题。
为了弄懂你同学的方法我,画了一个图

  1.     public static void printImg5(int side){//side表示菱形的边长
  2.         int t=(side<<1)-1;
  3.         for(int m=1;m<=t;m++){
  4.             for(int n=1;n<=t;n++){
  5.                 if(side-n<m&&m<side+n&&n-side<m&&m<side*3-n)
  6.                     System.out.print("*");
  7.                 else
  8.                     System.out.print(" ");
  9.             }
  10.             System.out.println();
  11.         }
  12.     }
复制代码

点评

这个画图解程序的思路很不错!赞啊!  发表于 2014-12-24 20:46
回复 使用道具 举报 1 0
as604049322 发表于 2014-12-24 20:12
我想你的同学肯定数学比较好,而且一定以前研究过菱形的坐标问题。
为了弄懂你同学的方法我,画了一个图
...

你这图好强大,听他说是之前数学的什么求阴影那一块的知识
回复 使用道具 举报
宋闪 中级黑马 2014-12-26 21:37:20
12#
as604049322 发表于 2014-12-24 20:12
我想你的同学肯定数学比较好,而且一定以前研究过菱形的坐标问题。
为了弄懂你同学的方法我,画了一个图
...

好有难度的题呀!!!!!!!!
回复 使用道具 举报
有点难度:sleepy:
回复 使用道具 举报
清浅。。 来自手机 中级黑马 2014-12-27 00:34:04
14#
我以前也问过这个问题,楼上的回复让我受教了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马