浏览 3284 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-27
最后修改:2010-05-27
2. Java代码: package boke.queue; /** * 分行打印(a+b)的n次方的系数 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class AAddBNPrint { /** * @param args */ public static void main(String[] args) { // 测试例子 AAddBNPrint aaBNP = new AAddBNPrint(); int n = 10; aaBNP.print(n); } private MyQueue mq = new MyQueue(); //FIFO队列 /** * 打印出(a+b)的n次方的展开式的系数 * @param n */ public void print(int n) { mq.makeEmpty(); mq.enQueue(new Integer(1)); // 预先放入第一行的两个系数 mq.enQueue(new Integer(1)); int s = 0; // 计算下一行系数时用到的工作单元 for (int i = 1; i <= n; i++) { // 逐行处理 System.out.println(""); // 换一行 mq.enQueue(new Integer(0)); // 各行间插入一个0 for (int j = 1; j <= i + 2; j++) { // 处理第i行的i+2个系数(包括一个0) int t = (Integer) mq.deQueue(); // 读取一个系数 mq.enQueue(new Integer(s + t)); // 计算下一行系数,并进队列 s = t; if (j != i + 2) { // 打印一个系数, 第i+2个是0 System.out.print(s + " "); } } } } } ------------------------------------------------------- package boke.queue; import java.util.LinkedList; /** * 队列 * * @since jdk1.6 * @author 毛正吉 * @version 1.0 * @date 2010.05.25 * */ public class MyQueue { private LinkedList ll = new LinkedList(); /** * 入队 * * @param o */ public void enQueue(Object o) { ll.addLast(o); } /** * 出队 * * @return */ public Object deQueue() { return ll.removeFirst(); } /** * 队列是否为空 * * @return */ public boolean isEmpty() { return ll.isEmpty(); } /** * 队列置空 */ public void makeEmpty() { ll.clear(); } }3. 输出结果: 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |