您的位置:首页 > 其它

20162303 队列加分项-杨辉三角

2017-10-22 23:44 381 查看

要求

用实现循环队列

参考PPT用循环队列打印杨辉三角

用JDB或IDEA单步跟踪排队情况,画出队列变化图,包含自己的学号信息

把代码推送到代码托管平台

把完成过程写一篇博客:重点是单步跟踪过程和遇到的问题及解决过程

提交博客链接

实现

方案一

最开始参考了老师的ppt



最开始将010入队

然后套用循环,使下一个数字的值等于队列最开始的两个值相加

我的思考方法是画出队列,然后进行入队推断。



填入数字后,我发现这种做法不能将新产生的数字入队形成循环,于是我就思考了其他的做法。

方案二

在不断尝试中我发现:

如果最开始输出一个1但是不入队参与循环

并在每次内部循环后入队0就可以正确输出杨辉三角



实现截图:



虽然能够实现,但是我又想了其他的办法

方案三

随后我又想,有什么其他的操作来进行这项实验呢?后来我想出:

如果最开始入队的不是01,而是10

那么可以接着仿照之前的步骤,同时也不需要将第一个1单独拿出来输出,这样也可以通过循环形成杨辉三角



代码实现如下:

public class YangHuiSanJiao {
public static void main(String[] args) {
CircularArrayQueue YH = new CircularArrayQueue();
System.out.println("输入你想要的行数:");
Scanner line = new Scanner(System.in);
int n = line.nextInt();
YH.enqueue(1);
YH.enqueue(0);
for (int i = 1; i <= n ; i++) {
for (int j = 0; j < i; j++) {
int a = (int) YH.first();
YH.dequeue();
int b = (int) YH.first();
int c = a + b;
System.out.print(c );
YH.enqueue(c);
}
YH.enqueue(0);
System.out.println();
}
}
}

实现截图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: