Pascal算法呢,很简单,因为有了推导公式nCr,而当我们刚刚接触一个事物时,面对要解决的问题,归纳分析得到规律,再通过编程,控制流程,对象,语言,方法,属性得到我们想要的结果。如果这次不是PAscal三角形,而是其他的呢?你会怎么解决?发现解决问题的能力真的很重要,特别是下次实习面试的时候要注意,以后要加强自己这方面的~因为如果我是面试官,我肯定会看中那些能很好的够解决一个新问题的面试者。
以下是---良葛格(我发现我有做数据分析的潜力。。。。基本上网上的实现都是这个版本,可他们不知道是谁写的,改天我重写下了,今天有点困咯)----的awt实现,之前曾经拜读过他的一本jsp,servlet的书,当然由于是同学的,稍微看了眼。
package common; import java.awt.*; import javax.swing.JFrame; public class Pascal extends JFrame { /** * @param args 2013.8.2 */ @SuppressWarnings("deprecation") public Pascal() { setBackground(Color.BLUE); setTitle("巴斯卡三角形"); setSize(520, 350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); show(); } private long combi(int n, int r){ int i; long p = 1; for(i = 1; i <= r; i++) p = p * (n-i+1) / i; return p; } public void paint(Graphics g) { final int N = 12; int n, r, t; for(n = 0; n <= N; n++) { for(r = 0; r <= n; r++) g.drawString(" " + combi(n, r), (N-n)*20 + r * 40, n * 20 + 50); } } public static void main(String[] args) { // TODO Auto-generated method stub Pascal frm = new Pascal(); } }
程序很简单,当然java图形编程的API有些不熟悉,由于javaweb方面没有用到过~一点一点补咯。之后又闲着写了java打印各种形状的小程序,惭愧啊,这本是刚刚入门就该做的事情,现在来补,这里就不一一贴出代码来了,大牛不会看,小牛呢,木有,哈~~
附上一篇文章,觉得写得蛮好的:为什么我反对纯算法面试题 ~by陈皓
OK,最后一句话结束(我会告诉你这是copy的嘛):
If you can't explain it simply, you don't understand it well enough.
- Albert Einstein