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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

谁有空心的菱形代码或是心形代码,分享下,这个代码没用双for,用的是if,拿出来和大家分享下

import java.util.Scanner;
class text9 {
        public static void main(String[] args){
                Scanner sc = new Scanner(System.in);
                System.out.println("输入一个数,得到该数的菱形");
                int n = sc.nextInt();
                printStar(n);
        }
        //打印星星
        private static void printStar(int n){
                //打印上半部分
                for(int i=0;i<n;i++){
                        for(int j=0;j<2*n;j++){
                          if(j<n-i)
                            System.out.print(" ");
                          if(j>=n-i && j<=n+i)
                            System.out.print("*");
                  }
                  System.out.println();
                }
                //打印下半部分
                for(int i=1;i<n;i++){
                        System.out.print(" ");
                        for(int j=0;j<2*n-i;j++){
                                if(j<i)
                            System.out.print(" ");
                          if(j>=i && j<2*n-i-1)
                            System.out.print("*");
                        }
                        System.out.println();
                }
        }
}

6 个回复

倒序浏览
点赞一下,
回复 使用道具 举报
本帖最后由 momoxixi 于 2015-10-31 00:35 编辑
  1. public class Heart {
  2.     int HighLevel(int wide) {
  3.         int i = 0, j = 0, k = 0, t = 0, m = 0, n = 0, count = 1;// i控制循环内高度,j控制每行前面空格,k控制输出的*数
  4.         // t控制高层星号中间空格,m记录高层最底行的星数,以下逐行增4
  5.         // n记录顶行空个数,以下逐行减4;count记录高层高度,与high无关
  6.         m = (wide - 4) / 2;
  7.         do {
  8.             count++;
  9.             m -= 4;
  10.         } while (m > 4);
  11.         if ((wide - 4) % 2 == 0)    // 区别对待奇偶宽度,奇数中间最小空1个,偶数最小空两个
  12.         {
  13.             n = 2 + 4 * (count - 1);
  14.             m--;
  15.         } else
  16.             n = 1 + 4 * (count - 1);

  17.         for (i = 0; i < count; i++) {
  18.             for (j = (count - i) * 2; j > 0; j--)
  19.                 System.out.print(" ");
  20.             for (k = 0; k < m; k++)
  21.                 System.out.print("*");
  22.             for (t = 0; t < n; t++)
  23.                 System.out.print(" ");
  24.             for (k = 0; k < m; k++)
  25.                 System.out.print("*");
  26.             m += 4;
  27.             n -= 4;
  28.             System.out.print("\n");
  29.         }

  30.         return 0;
  31.     }

  32.     int LowLevel(int wide) {
  33.         int i = 0, j = 0, k = 0;// i控制输出行,j控制输出每行前的空格,k控制输出*
  34.         int high = 0, tmp = wide;
  35.         do// 计算所需高度
  36.         {
  37.             high++;
  38.             tmp -= 4;
  39.         } while (tmp > 4);
  40.         high += 1;

  41.         for (i = 0; i < high; i++) {
  42.             for (j = 0; j < 2 * i; j++)
  43.                 System.out.print(" ");
  44.             for (k = wide - 4 * i; k > 0; k--)
  45.                 System.out.print("*");
  46.             System.out.print("\n");
  47.         }
  48.         return 0;
  49.     }

  50.     public static void main(String[] args) {
  51.         int wide = 30;
  52.         Heart heart = new Heart();
  53.         heart.HighLevel(wide);
  54.         heart.LowLevel(wide);
  55.     }
  56. }
复制代码

回复 使用道具 举报 1 0

大神!!!厉害!!!
回复 使用道具 举报
佩服佩服~~~
回复 使用道具 举报
  1. import java.util.Scanner;
  2. class pri2 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 int x = sc.nextInt();
  6.                 for (int i = 0; i < x; i++) {
  7.                         for (int j = 1; j < x * 2; j++) {
  8.                                 if (j == x - i || j == x + i) {
  9.                                                 System.out.print("*");
  10.                                 }else
  11.                                         System.out.print(" ");
  12.                         }
  13.                         System.out.println(" ");
  14.                 }
  15.                 for (int i = 1; i <= x -1; i++) {
  16.                         for (int j = 0; j < 2 * (x -1); j++) {
  17.                                 if (j == i || j == ((x -1) * 2 - i)) {
  18.                                                 System.out.print("*");
  19.                                 }else
  20.                                         System.out.print(" ");                       
  21.                         }
  22.                         System.out.println(" ");
  23.                 }
  24.         }
  25. }
复制代码


键盘录入  任意长度的空心菱形
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马