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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 吴愿涛 于 2012-11-29 18:53 编辑

各位看官,有的就继续补充 ,多多益善,都有分拿!{:soso_e122:}
  1. package com.itheima.打印图形;

  2. /*
  3. * for(条件) {
  4. //外循环执行语句;
  5. for (条件) {

  6. 内循环执行语句;
  7. }
  8. }
  9. */
  10. public class ForNestedLoop {
  11. public static void main(String[] args) {
  12. 矩形();
  13. 靠左的三角形();
  14. 靠右的三角形();
  15. 等腰三角形();
  16. 带尖的等腰三角形1();
  17. 带尖的等腰三角形2();
  18. 倒三角();
  19. 空心菱形();
  20. }
  21. public static void 矩形() {
  22. System.out.println("------------矩形--------------");
  23. // 外层寻缘控制行,
  24. for (int i = 0; i < 10; i++) {
  25. // 内层循环控制列
  26. for (int j = 0; j < 10; j++) {
  27. System.out.print("*");
  28. }

  29. System.out.println();
  30. }
  31. }

  32. public static void 靠左的三角形() {
  33. System.out.println("------------靠左的三角形--------------");
  34. for (int i = 0; i < 10; i++) {

  35. for (int j = 10 - i; j < 10; j++) {
  36. System.out.print("*");
  37. }
  38. System.out.println("*");
  39. }
  40. }

  41. /**
  42. *
  43. */
  44. public static void 靠右的三角形() {
  45. System.out.println("------------靠右的三角形--------------");
  46. for (int i = 0; i < 10; i++) {
  47. for (int j = i; j < 10; j++) {
  48. System.out.print(" ");
  49. }
  50. for (int j = 10 - i; j < 10; j++) {
  51. System.out.print("*");
  52. }
  53. System.out.println();
  54. }

  55. }

  56. /**
  57. * 等腰三角形
  58. */
  59. public static void 等腰三角形() {
  60. System.out.println("-----------等腰三角形---------------");
  61. for (int i = 0; i < 10; i++) {
  62. for (int j = i; j < 10; j++) {
  63. System.out.print(" ");
  64. }
  65. for (int j = 10 - i; j < 10 + i; j++) {
  66. System.out.print("*");
  67. }
  68. System.out.println();
  69. }

  70. }
  71. /**
  72. * 带尖的等腰三角形1
  73. */
  74. private static void 带尖的等腰三角形1() {
  75. System.out.println("------------------带尖的等腰三角形1---------------------");
  76. for(int i=0;i<10;i++){
  77. //每行之前的空格
  78. for(int j=i;j<10;j++){
  79. System.out.print(" ");
  80. }
  81. //每行的*号
  82. for(int j=9-i;j<10+i;j++){
  83. System.out.print("*");
  84. }
  85. System.out.println();
  86. }

  87. }
  88. /**
  89. * 带尖的等腰三角形2
  90. */
  91. private static void 带尖的等腰三角形2() {
  92. System.out.println("------------------带尖的等腰三角形2---------------------");
  93. for(int i=0;i<10;i++){
  94. //空格
  95. for(int j=0;j<10-i;j++){
  96. System.out.print(" ");
  97. }
  98. //*号
  99. for(int k=0;k<2*i-1;k++){
  100. System.out.print("*");
  101. }
  102. System.out.println();
  103. }
  104. }


  105. /**
  106. * 倒三角
  107. */
  108. private static void 倒三角() {
  109. System.out.println("------------------------倒三角------------------------");
  110. for(int i=0;i<=9;i++){
  111. //空格
  112. for(int j=1;j<=i;j++){
  113. System.out.print(" ");
  114. }
  115. //*号
  116. for(int k=1;k<=19-2*i;k++){
  117. System.out.print("*");
  118. }
  119. System.out.println();
  120. }
  121. }
  122. /**
  123. * 空心菱形
  124. */
  125. private static void 空心菱形(){
  126. System.out.println("-------------------------空心菱形--------------------------------");
  127. for(int i=1;i<=10;i++){
  128. for(int j=1;j<=10-i;j++){
  129. System.out.print(" ");
  130. }
  131. for(int k=1;k<=2*i-1;k++){
  132. if(k==1 || k==2*i-1){
  133. System.out.print("*");
  134. }else{
  135. System.out.print(" ");
  136. }
  137. }
  138. System.out.println();
  139. }
  140. //---------------^------------------------------
  141. for(int i=1;i<=9;i++){
  142. for(int j=1;j<=i;j++){
  143. System.out.print(" ");
  144. }
  145. for(int k=1;k<=19-2*i;k++){
  146. if(k==1 || k==19-2*i){
  147. System.out.print("*");
  148. }else{
  149. System.out.print(" ");
  150. }
  151. }
  152. System.out.println();
  153. }

  154. }







  155. }
复制代码

分别对应以下图形;
----------------------------------------------矩形------------------------------------------------
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
---------------------------------------靠左的三角形--------------------------------------------
*
**
***
****
*****
******
*******
********
*********
**********
---------------------------------------靠右的三角形------------------------------------------
         
                 *
               **
             ***
           ****
         *****
       ******
     *******
   ********
*********
--------------------------------------------等腰三角形--------------------------------------------
         
           **
         ****
       ******
      ********
     **********
    ************
   **************
  ****************
******************
---------------------------------带尖的等腰三角形1---------------------------------------------
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
*******************
--------------------------------带尖的等腰三角形2-----------------------------------------------
         
           *
         ***
        *****
       *******
      *********
     ***********
    *************
  ***************
*****************
-------------------------------------------------倒三角------------------------------------------
*******************
*****************
  ***************
   *************
    ***********
     *********
      *******
       *****
        ***
         *
--------------------------------------------空心菱形---------------------------------------------
         *
        * *
       *   *
      *     *
     *       *
    *         *
   *           *
  *             *
*               *
*                 *
*               *
  *             *
   *           *
    *         *
     *       *
      *     *
       *   *
        * *
         *
  1. /**
  2. *
  3. */
  4. package com.itheima.打印图形;

  5. /**
  6. * @author 吴愿涛
  7. * 1.外层判断循环条件,满足进入外层循环体
  8. * 2.内层判断循环条件
  9. * 3.内层循环体执行
  10. * 4.内层循环变量累加,回到2执行,直到不满足内层条件
  11. * 5.外层循环变量累加,回到1执行,直到不满足外层循环条件,彻底退出循环
  12. *
  13. *
  14. */
  15. public class _9X9 {
  16. public static void main(String[] args) {
  17. _9x9();
  18. _9x9_2();
  19. }
  20. /* 实际上是打印了一个乘法表,1*1开始9*9结束。
  21. 1.首先赋值i = 1, 然后判断i <=9,满足条件,进入外层循环体
  22. 2.赋值j=1,判断j<=i ,(此时两个值相同),满足条件,进入内层循环,输出j*i,执行j++, 也就是j=2.
  23. 执行System.out.println();输出一个换行符号
  24. 3.到此外层第一次循环结束,执行i++,也就是i=2了,然后判断i <=9,满足条件,
  25. 再次进入外层循环体
  26. 4.赋值j=1,判断j<i ,满足条件,进入内层循环体,输出2*1=2。
  27. 5,内层循环体第一次循环结束,循环变量 j++,j=2了,再次判断j<i ,
  28. 不满足条件,退出内层循环
  29. 6,执行System.out.println();输出一个换行符号
  30. 7,由此重复3~6,i =3时,打印 3*1=33*2=6,i=4时,打印4*1=44*2=84*3=12,
  31. 当i=9时执行最后一次循环,9*1=9....9*9=81,之后累加i =10,不满足外层循环,彻底退出.*/
  32. public static void _9x9() {
  33. System.out.println("--------------九九乘法表1------------------");
  34. for (int i=1;i<=9;i++){
  35. for(int j=1;j<=i;j++){
  36. System.out.print(j+"*"+i+"="+j*i+"\t");
  37. }
  38. System.out.println();
  39. }
  40. }
  41. public static void _9x9_2(){
  42. System.out.println("--------------九九乘法表2------------------");
  43. System.out.print("X\t|");
  44. for(int n=1;n<10;n++){
  45. System.out.print("\t"+n);
  46. }
  47. System.out.println("\n----------------------------------------------------------------------------------------");
  48. for(int i=1;i<10;i++){
  49. System.out.print(i+"\t|");
  50. for(int j=1;j<10;j++){
  51. System.out.print("\t"+i*j);
  52. }
  53. System.out.println();
  54. }
  55. }


  56. }
复制代码

9x9.png (41.34 KB, 下载次数: 242)

9x9.png

评分

参与人数 1黑马币 +40 收起 理由
古银平 + 40

查看全部评分

35 个回复

倒序浏览
沙发,你妹。{:soso_e102:}
  1. package com.itheima.打印图形;
  2. class 空心三角形
  3. {
  4. public static void main(String[] args)
  5. {
  6. //控制行数
  7. for (int i=1; i<=10; i++)
  8. {
  9. //控制第一部分的空格数
  10. for (int j=1; j<=11-i; j++)
  11. {
  12. System.out.print(" ");
  13. }
  14. //控制三角形部分
  15. for (int k=1; k<=2*i-1; k++)
  16. {
  17. //边
  18. if (k==1 || k==2*i-1)
  19. {
  20. System.out.print("*");
  21. }
  22. else
  23. {
  24. System.out.print(" ");
  25. }
  26. }
  27. System.out.println();
  28. }
  29. //最底一行
  30. for (int i=0; i<21; i++)
  31. {
  32. System.out.print("*");
  33. }
  34. }
  35. }
复制代码
对应图形;  

sjx.png (2.14 KB, 下载次数: 242)

sjx.png

评分

参与人数 1技术分 +30 黑马币 +40 收起 理由
古银平 + 30 + 40

查看全部评分

回复 使用道具 举报
{:soso_e102:}好东西了..................................
回复 使用道具 举报
打印回字形数字。{:soso_e117:}
  1. package com.itheima.打印图形;

  2. /**
  3. * java打印1-9 回 字 形 矩阵 非数组
  4. * 33333
  5. * 32223
  6. * 32123
  7. * 32223
  8. * 33333
  9. *
  10. *
  11. * @author 吴愿涛
  12. */
  13. public class 回字形矩阵_非数组 {
  14. public static void main(String[] args) {
  15. hui(3);// 打印回字型3的图形。
  16. }

  17. public static void hui(int a) {
  18. int c, m, n;// m为行数,n为列数,输出为M*N回字矩阵,c为行输出基准数
  19. c = a;
  20. for (m = 1; m <= 2 * a - 1; m++)// 行计数
  21. {
  22. for (n = 1; n <= 2 * a - 1; n++)// 列计数
  23. {
  24. if (n < a - c + 1) {
  25. System.out.print(a - n + 1);
  26. } else {
  27. if (n > a + c - 1) {
  28. System.out.print(n + 1 - a);
  29. } else {
  30. System.out.print(c);
  31. }
  32. }
  33. }
  34. // 行输出基准数c 作为数值大小的观察点
  35. System.out.println("");
  36. if (m < a) {
  37. c--;
  38. } else {
  39. c++;
  40. }
  41. }
  42. }
  43. }
复制代码
数组:
  1. package com.itheima.打印图形;
  2. import java.util.*;
  3. class 回字形矩阵_数组
  4. {
  5. public static void main(String [] args)
  6. {
  7. Scanner ss = new Scanner(System.in);
  8. int a = ss.nextInt();
  9. int [][] arr=new int [a+2][a+2];
  10. for(int i=0;i<arr.length;i++)
  11. {
  12. for(int j=0;j<arr[i].length;j++)
  13. {
  14. if(i==0||i==arr.length-1||j==0||j==(arr[i].length-1))
  15. arr[i][j]=a-2;
  16. else if (i==1||i==arr.length-2||j==1||j==(arr[i].length-2))
  17. arr[i][j]= a-1;
  18. else
  19. arr[i][j]= a;

  20. }
  21. }
  22. for(int i=0;i<arr.length;i++)
  23. {
  24. for(int j=0;j<arr[i].length;j++)
  25. {
  26. System.out.print(arr[i][j]);
  27. }
  28. System.out.println();
  29. }
  30. }
  31. }
复制代码
回复 使用道具 举报
  1. //打印正弦函数
  2. class PrintDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 int[][] num=new int[20][80];
  7.                 double y=0;
  8.                 double du=0.;
  9.                 for(int i=0;i<20;i++)
  10.                 {
  11.                         for(int k=0;k<80;k++)
  12.                         {
  13.                                 y=10*Math.sin(2*k*Math.PI/80.);
  14.                                 if(y>0)
  15.                                         num[i][k]=((y<=10-i)&&y>=(9-i))?(10-i):0;
  16.                                 if(y<=0)
  17.                                         num[i][k]=((y<=10-i)&&y>=(9-i))?(10-i):0;
  18.                         }
  19.                 }
  20.                 num[10][0]=1;
  21.                 num[10][40]=1;
  22.                 num[10][79]=1;
  23.                 for(int i=0;i<20;i++)
  24.                 {
  25.                         for(int k=0;k<80;k++)
  26.                         {
  27.                                 if(num[i][k]==0)
  28.                                  sop("-");
  29.                                 else
  30.                                         sop("*");

  31.                         }sop();
  32.                 }
  33.                
  34.         }
  35.         public static void sop(Object obj)//打印后换行
  36.         {
  37.                 System.out.print(obj);
  38.         }
  39.         public static void sop()//只打印不换行
  40.         {
  41.                 System.out.println();
  42.         }
  43. }
复制代码

打印正弦函数.jpg (113.72 KB, 下载次数: 194)

打印正弦函数.jpg

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
表示我收藏了,嘿嘿
回复 使用道具 举报
  1. //打印马字
  2. class PrintMa
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 int[][] num=new int[15][20];
  7.                 for(int i=0;i<15;i++)
  8.                 {
  9.                         for(int k=0;k<20;k++)
  10.                         {
  11.                                 num[i][k]=0;
  12.                         }
  13.                 }
  14.                 for(int i=0;i<5;i++)//第一笔
  15.                 {
  16.                         for(int k=3;k<13;k++)
  17.                         {
  18.                                 if(i==0||(k==12))
  19.                                 num[i][k]=1;
  20.                         }
  21.                 }
  22.                 for(int i=0;i<12;i++)//第二笔
  23.                 {
  24.                         for(int k=3;k<13;k++)
  25.                         {
  26.                                 if((k==3&&(i>1&&i<7))||(i==6)||(k==12&&i>6))
  27.                                         num[i][k]=1;
  28.                         }
  29.                 }
  30.                 for(int i=0;i<8;i++)
  31.                 {
  32.                         num[8][i+1]=1;
  33.                 }
  34.                 num[10][7]=1;
  35.                 for(int i=0;i<15;i++)
  36.                 {
  37.                         for(int k=0;k<20;k++)
  38.                         {
  39.                                 if(num[i][k]!=0)
  40.                                         sop("*");
  41.                                 else
  42.                                         sop(" ");
  43.                         }
  44.                         sop();
  45.                 }
  46.         }
  47.         public static void sop(Object obj)
  48.         {
  49.                 System.out.print(obj);
  50.         }
  51.         public static void sop()
  52.         {
  53.                 System.out.println();
  54.         }
  55. }
复制代码

打印马字.jpg (38.64 KB, 下载次数: 225)

打印马字.jpg

点评

这个马字有点丑 。  发表于 2012-11-29 19:35

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. /*
  2. 该程序的思想主要是基于三重循环的方法,
  3. 第一个循环控制二维图形的层数(比如参数是3,则一共有三层);
  4. 第二个循环
  5. */
  6. class MyAnswer
  7. {
  8.         public static void main(String[] args)
  9.         {

  10.         run(3);sop("\r\n");//为了验证正确性,循环测试了多次,多个数据
  11.         run(5);//测试结果
  12.                
  13.         }
  14.         public static void sop(Object obj)
  15.         {
  16.                 System.out.print(obj);
  17.         }
  18.         public static void print(int[][] num)//用于打印数组
  19.         {
  20.                 for(int i=0;i<num[0].length;i++)
  21.                 {
  22.                         for(int k=0;k<num[0].length;k++)
  23.                         {
  24.                                 sop(num[i][k]);
  25.                         }sop("\r\n");
  26.                 }
  27.         }
  28.         public static void run(int x)//用于给数组赋值,给函数为核心函数,主要功能由此产生
  29.         {
  30.                 int rows=x*2-1;//定义行数,由于图形是正方形的,因此行数和列数是一致的。
  31.                 int[][] num=new int[rows][rows];//定义一个二维数组
  32.                 for(int t=0;t<x;t++)//第一个循环:控制层数
  33.                 {
  34.                         sop("第"+(t+1)+"步:"+"\r\n");
  35.                         for(int i=t;i<rows-t;i++)//第二层循环:控制给指定数组要赋值的行数。先给每行数组赋值是相同的,然后通过第一个循环在一次缩小范围赋值
  36.                         {
  37.                                 for(int k=t;k<rows-t;k++)//第三层循环:给数组赋值
  38.                                 {
  39.                                         num[i][k]=t+1;
  40.                                 }
  41.                         }print(num);//打印给数组,为了更好地展示赋值的过程,在这里打印数组结果。
  42.                         sop("\r\n");
  43.                 }
  44.                 sop("您输入的参数为:"+x+"的结果已经打印完毕,并且在最后打印结果的上面显示了计算步骤。");
  45.         }
  46. }
复制代码

打印回字过程显示.jpg (39.55 KB, 下载次数: 297)

打印回字过程显示.jpg

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. class PrintHei //打印黑字
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[][] num=new int[15][20];
  6.                 setValue(num,15,20);
  7.                 for(int i=0;i<5;i++)//第一笔
  8.                 {
  9.                         for(int k=1;k<15;k++)
  10.                         {
  11.                                 if(i==0||k==1||i==4||k==14)
  12.                                 num[i][k]=1;
  13.                                 if(k==7)
  14.                                         num[i][k]=1;
  15.                         }
  16.                 }
  17.                 num[5][7]=1;
  18.                 num[2][4]=1;
  19.                 num[2][10]=1;
  20.                 num[3][5]=1;
  21.                 num[3][9]=1;
  22.                 num[9][2]=1;num[10][1]=1;
  23.                 num[9][6]=1;num[10][7]=1;
  24.                 num[9][10]=1;num[10][11]=1;
  25.                 num[9][14]=1;num[10][15]=1;
  26.                 for(int i=6;i<9;i++)//第二笔
  27.                 {
  28.                         for(int k=0;k<16;k++)
  29.                         {
  30.                                 if(i==6&&(k>2&&k<13))
  31.                                         num[i][k]=1;
  32.                                 if(i==8)
  33.                                         num[i][k]=1;
  34.                                 if(k==7)
  35.                                         num[i][k]=1;
  36.                         }
  37.                 }
  38.                 show(num,15,20);
  39.         }
  40.         public static void setValue(int[][] num,int x,int y)//用于给数组赋值
  41.         {
  42.                 for(int i=0;i<x;i++)
  43.                 {
  44.                         for(int k=0;k<y;k++)
  45.                         {
  46.                                 num[i][k]=0;
  47.                         }
  48.                 }
  49.         }
  50.         public static void show(int[][] num,int x,int y)//打印出数组
  51.         {
  52.                 for(int i=0;i<x;i++)
  53.                 {
  54.                         for(int k=0;k<y;k++)
  55.                         {
  56.                                 if(num[i][k]!=0)
  57.                                         sop("*");
  58.                                 else
  59.                                         sop(" ");
  60.                         }
  61.                         sop();
  62.                 }
  63.         }
  64.         public static void sop(Object obj)
  65.         {
  66.                 System.out.print(obj);
  67.         }
  68.         public static void sop()
  69.         {
  70.                 System.out.println();
  71.         }
  72. }
复制代码

打印黑马.jpg (21.55 KB, 下载次数: 215)

打印黑马.jpg

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 这个可以有 。

查看全部评分

回复 使用道具 举报
王震阳 发表于 2012-11-29 20:12

呵呵,马字确实丑,这个黑字要稍微好看点啦。
回复 使用道具 举报

  1. <P>/*
  2. 打印如下图形:
  3. 1  2  6  7
  4. 3  5  8 13
  5. 4  9 12 14
  6. 10 11 15 16
  7. */</P>
  8. <P>class Demo
  9. {
  10. public static void main(String[] args)
  11. {
  12.   int a = 10;
  13.   int num = 0;
  14.   int[][] arr = new int[15][15];</P>
  15. <P>  for(int i=0; i<a*2-1; i++)
  16.   {
  17.    for(int j=0; j<=i && j<a; j++)
  18.    {
  19.     for(int k=0; k<=i && k<a; k++)
  20.     {
  21.      if(j+k == i)
  22.      {
  23.       if(i%2 == 0)
  24.        arr[j][k] = ++num;
  25.       else
  26.        arr[k][j] = ++num;
  27.      }
  28.     }
  29.    }
  30.   }
  31.   
  32.   for(int i=0; i<a; i++)
  33.   {
  34.    for(int j=0; j<a; j++)
  35.    {
  36.     System.out.print(arr[i][j]+"\t");
  37.    }
  38.    System.out.println();
  39.   }
  40. }
  41. }
  42. </P>
复制代码
不知道这个- - 给不给加分,很早之前做的一个题目!

QQ截图20121129202402.jpg (25.85 KB, 下载次数: 230)

输出结果

输出结果

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 这个可以有 。

查看全部评分

回复 使用道具 举报
你们搞搞 数字 字母LED 或者汉字点阵 出来看看
回复 使用道具 举报
本帖最后由 高志鹏 于 2012-11-30 12:29 编辑
  1. int[] c = new int[10];
  2.         for(int i=0;i<c.length;i++){
  3.             for(int j=0;j<i;j++){
  4.                 System.out.print(" ");               
  5.             }
  6.             for(int m=0;m<c.length;m++){
  7.                 System.out.print("*");
  8.             }   
  9.         System.out.println();
  10.         }
  11.         System.out.println();
复制代码
打印出来是一个平行四边形
**********
**********
  **********
   **********
    **********
     **********
      **********
       **********
        **********
         **********

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
一句话,给力啊。群猪
回复 使用道具 举报
  1. /**
  2.   * 画出字母V
  3.   * @param size:字母的大小
  4.   */
  5. private static void darwV(int size) {
  6.   size = size*4;
  7.   for (int i = 0; i <= size/2; i++) {
  8.    for (int j = 0; j < i; j++) {
  9.     System.out.print(" ");
  10.    }
  11.    for (int k = i; k <= size-i; k=k+2) {
  12.     if(k == i||k == size-i){
  13.      System.out.print("**");
  14.     }else{
  15.      System.out.print("  ");
  16.     }
  17.    }
  18.    System.out.println("");
  19.   }
  20. }
复制代码
-------字母V---------
**              **
**            **
  **          **
   **        **
    **      **
     **    **
      **  **
       ****
        **
-----------------------

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1.         /**
  2.          * 画出字母X
  3.          * @param size:字母的大小
  4.          */
  5.         private static void darwX(int size) {
  6.                 size = size*2;
  7.                 for (int i = 0; i <= size/2; i++) {
  8.                         for (int j = 0; j < i; j++) {
  9.                                 System.out.print(" ");
  10.                         }
  11.                         for (int k = i; k <= size-i; k=k+2) {
  12.                                 if(k == i||k == size-i){
  13.                                         System.out.print("**");
  14.                                 }else{
  15.                                         System.out.print("  ");
  16.                                 }
  17.                         }
  18.                         System.out.println("");
  19.                 }
  20.                 for (int i = 0; i < size/2; i++) {
  21.                         for (int j = 1; j < size/2-i; j++) {
  22.                                 System.out.print(" ");
  23.                         }
  24.                         for (int k = 0; k <= 2*(i+1); k=k+2) {
  25.                                 if(k == 0||k == 2*(i+1)){
  26.                                         System.out.print("**");
  27.                                 }else{
  28.                                         System.out.print("  ");
  29.                                 }
  30.                         }
  31.                         System.out.println("");
  32.                 }
  33.         }
复制代码
----字母X-------
**      **
**    **
  **  **
   ****
    **
   ****
  **  **
**    **
**      **
-----------
回复 使用道具 举报
  1. /**
  2.          * 画出字母A
  3.          * @param size:字母的大小
  4.          */
  5.         private static void darwA(int size) {
  6.                 size = size*4;
  7.                 for (int i = 0; i < size/2; i++) {
  8.                         for (int j = 1; j < size/2-i; j++) {
  9.                                 System.out.print(" ");
  10.                         }
  11.                         if(i!=size/5&&i!=size/5-1){
  12.                                 for (int k = 0; k <= 2*(i+1); k=k+2) {
  13.                                         if(k == 0||k == 2*(i+1)){
  14.                                                 System.out.print("**");
  15.                                         }else{
  16.                                                 System.out.print("  ");
  17.                                         }
  18.                                 }
  19.                         }else{
  20.                                 for (int k = 0; k <= 2*(i+1); k=k+2) {
  21.                                         System.out.print("**");
  22.                                 }
  23.                         }
  24.                         
  25.                         System.out.println("");
  26.                 }
  27.         }
复制代码
****
                **  **
               **    **
              **      **
             **        **
            **          **
           **            **
          **              **
         *************
        **************
       **                    **
      **                      **
     **                        **
    **                          **
   **                            **
  **                              **
**                                **
**                                  **
回复 使用道具 举报
这个必须顶,回头看
回复 使用道具 举报
太吊了,看来我要加吧油
回复 使用道具 举报
我也来个吧~
  1. package cn.heima.main;

  2. import java.util.Scanner;

  3. public class PrintMatrix {

  4.         /**
  5.          * 根据参数Max来确定维数,维数为2*Max-1;根据图判断规律是以最大数为中心,向外逐层展开,逐层减小
  6.          * 直到减到1为止。该算法是核心就是获取获取任意元素的层数。我的算法就是以最大元素为中心坐标,获取每个元素坐标与之之差的的绝对值的最大值,
  7.          * 然后赋值给该数组,并打印数据。
  8.          *
  9.          * @author 滕达;
  10.          */
  11.         public static void main(String[] args) {
  12.                 //最大数字
  13.                 Scanner in = new Scanner(System.in);
  14.                 System.out.println("请输入层数:");
  15.                 int max=in.nextInt();
  16.                 System.out.println("图形如下:");
  17.                 //int max=5;
  18.                 //最大维数
  19.                 int div=2*max-1;
  20.                 //创建矩阵数组
  21.                 int Matrix[][]=new int[div][div];
  22.                 //x轴中位数,y轴中位数
  23.                 int point=(div-1)/2;
  24.                 for(int i=0;i<div;i++){
  25.                         for(int j=0;j<div;j++){
  26.                                 //判断层数,如果是第一层,则全部为1
  27.                                
  28.                                 Matrix[i][j]=max-Max(Math.abs(point-i),Math.abs(point-j));
  29.                                
  30.                                 System.out.print(Matrix[i][j]+" ");
  31.                                
  32.                         }
  33.                         System.out.println("");
  34.                        
  35.                 }
  36.                
  37.         }
  38.        
  39.         public static int Max(int i,int j){
  40.                 return i>j?i:j;
  41.         }

  42. }
复制代码
效果是:
请输入层数:
6
图形如下:
1 1 1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 2 2 1
1 2 3 3 3 3 3 3 3 2 1
1 2 3 4 4 4 4 4 3 2 1
1 2 3 4 5 5 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 5 5 4 3 2 1
1 2 3 4 4 4 4 4 3 2 1
1 2 3 3 3 3 3 3 3 2 1
1 2 2 2 2 2 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马