2018年5月4日

020 实现输出杨辉三角

 1 public class YangHuiTest
 2 {
 3     public static void main(String[] args)           //String[] args含义是什么
 4      {
 5         int triangle[][]=new int [10][];             //创建二维数组
 6                                                      //遍历二维数组
 7         for(int i = 0;i < triangle.length;i++)
 8         {
 9             triangle[i] = new int [i+1];             //初始化第二层数组大小
10                                                      //遍历第二层数组
11             for(int j=0; j<=i;j++)                   //j<=i写成j<=1
12             {
13                 if(i==0||j==0||j==i)
14                 {
15                     triangle[i][j]=1;                //将三角两侧赋值为1
16                 }
17                 else
18                 {
19                     triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];//其他情况:该数=同列前行+前列前行
20                 }
21                 System.out.print(triangle[i][j]+"\t");
22             }
23             System.out.println();
24         }
25         
26     }
27 
28 }

备注:

1、String[] args的含义是什么?

      

string[] args ,是 声明一个参数数组
在java中,main函数的括号里带有一个参数数组,调用是可以带有任意数目个参数。
String 表示参数的类型是 字符串型,[] 表示参数是一个数组,args 数参数数组名
在方法内使用这些参数的时候,可以通过访问数组元素的形式来实现。
比如:
public static void main(String [] args) // 也可以写成 (String args[])
{
for(int i=0;i<args.length;i++)
System.out.println(args[0]);
}
在调用这些参数的时候,参数之间用空格隔开,如果某个字符串中间有空格,那么用“”把该字符串引起来即可。

     注明:本段摘抄至百度之道

ice2921

2、杨辉三角特征

      1>三角两侧为1

       2>其他情况:

                          triangle[i][j]=triangle[i-1][j]+triangle[i-1][j-1];

                          该数=同列前行+前列前行

3、triangle 三角 (捂脸)


 

昨天晚上Eclipse崩了,原因工作空间占用太大导致内存条与CPU承受不了。我的电脑是i5、4G的,运行Eclipse还是可以的(只要不要打开题多的运行空间,一般不会炸)昨天要完成的任务也因为这件事耽搁了。昨天都差点放弃用Eclipse改用interllij idea,因为太小白还是放弃了,等过段时间在调整。今天上午我又把Eclipse重新装在C盘里面(固态硬盘),效果还是不错的(不过以后再文件里面放过多的Java项目,影响电脑运行)


 

021空心菱形如何表示

 1 public class Diamond 
 2 {
 3     public static void main(String[] args)
 4     {        printHollowRhombus(6);
 5      }
 6     public static void printHollowRhombus(int size)
 7     {
 8         if(size % 2==0)
 9         {
10             size++;                           //计算菱形大小
11         }
12         for(int i=0;i<size/2+1;i++)
13         {
14             for (int j = size/2+1;j>i+1;j--)
15             {
16                 System.out.print("  ");     //输出左上角位置的空白
17             }
18             for(int j=0;j<=2*i+1;j++)
19             {
20                 if(j==0||j==2*i)
21                  {
22                     System.out.print("* ");   //输出菱形上半边缘
23                  }
24                 else
25                 {
26                     System.out.print("  ");   //输出菱形上半部空心
27                 }
28             }
29             System.out.println("");           //换行     
30         }
31         for(int i =size/2+1;i<size;i++)
32         {
33             for(int j=0;j<i-size/2;j++)
34             {
35                 System.out.print("  ");       //输出菱形坐下角空白
36             }
37             for(int j=0;j<2*size-1-2*i;j++)
38             {
39                 if(j==0||j==2*(size-i-1))
40                 {
41                     System.out.print("* ");   //输出菱形下半部分边缘
42                 }
43                 else
44                 {
45                     System.out.print("  ");   //输出菱形下半部分空心
46                 }
47             }
48             System.out.println("");           //换行
49         }
50     }
51 
52 }

运行结果:

备注:这一道题花的时间比较多(问题出在:在程序中for语句的运用,设计者堪称完美。所以想更深刻的了解每一步的运顺过程。因为不是自己写的在思路上很那理解,期间动用了Debug功能)。

一、Debug功能的实现步骤:1、先确定断点(双击代码的左侧的行数,之后会出现小圆点。),菜单的上方有一个小虫一样的图标点击后,程序会运行到该小圆点出停止,按F6会一步一步的运行。之后退出调试模式:在屏幕的右上角会看见一个小虫子点击选退出就可以了。(这个花了好久,但是依然没能解决我的问题)

二、程序的思路:1、前提是已经构建好数学运算思路2、通过双层for循环来控制空白处与字符的输出。3、先把菱形分出上下两个部分,然后再把上下两个部分再分成左右两个部分:前短的空白部分与后段的字符与空白部分;

(核心部分)

for(int i=0;i<size/2+1;i++)            //计算要输出的行数

for (int j = size/2+1;j>i+1;j--)        //控制每行空白格子数(由多到少)
for(int j=0;j<=2*i+1;j++)               //判断要输出的是空白格子还是字符
if(j==0||j==2*i)                             //判断要输出的是空白格子还是字符

else System.out.println("")           //转行
for(int i =size/2+1;i<size;i++)       //计算要输出的行数
for(int j=0;j<i-size/2;j++)              // 控制每行空白格子数(由少到多)
for(int j=0;j<2*size-1-2*i;j++)       //判断要输出的是空白格子还是字符
if(j==0||j==2*(size-i-1))                //判断要输出的是空白格子还是字符
else System.out.println("")          //转行

022打印九九乘法表

 1 package jiujiuTable;
 2 
 3 public class jiujiuTable 
 4 {
 5 
 6     public static void main(String[] args)
 7     {
 8         for(int i=1;i<=9;i++)
 9         {
10             for(int j=1;j<=i;j++)
11             {
12                 System.out.print(j+"*"+i+"="+i*j+"\t");
13             }
14             System.out.println("");
15         }
16     }
17 }

备注:出现了  无法启动选择的项,最近进行任何启动  情况 原因:main 写成了 mian导致不能运算。

猜你喜欢

转载自www.cnblogs.com/singlewang/p/8990839.html