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