求一个java小程序的代码。!,,,谢谢

格式如下:
1
1 2 1
1 3 3 1
1 4 6 4 1

以此类推,输出10行就ok。谢谢高手了先。。
格式如图:

求杨辉三角吧,代码如下:
public class YhuiTriangle {

public static int binomial(int n,int k){
int a = 1,b = 1;
if(k == 0)return 1;
for(int i = 1 ;i<=k;i++){
b = b*i;
a = a * (n-i+1);
}
return a/b;
}

public static void main(String args[]){
System.out.println(" "+1);
for(int n = 2;n<=10;n++){
for(int i = 9;i>=n;i--)System.out.print(" ");
for(int k = 0; k<n ;k++)System.out.print(binomial(n,k)+" ");
System.out.println(1);
}
}

}
//这个算法还可以在时间上进行改进
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-23
满有意思的样子,

先看看,有思路了就好写了
第2个回答  2009-04-24
package co;

public class YanghuiTriangle {

public static void main(String[] args) {
YanghuiTriangle yht = new YanghuiTriangle();
yht.draw(10);
}

public void draw(int len) {
int[] temp1 = new int[len];
for (int i = 0; i < len - 1; i++) {
temp1[i] = 0;
}
temp1[len - 1] = 1;
print(temp1);
for (int i = 0; i < len-1; i++) {
if (i == len - 2) {
temp1 = makeLine(temp1, true);
print(temp1);
} else {
temp1 = makeLine(temp1, false);
print(temp1);
}
}
}

private int[] makeLine(int[] arr1, boolean isLast) {
int[] result = new int[arr1.length + 1];
if (isLast) {
result[0] = 1;
} else {
result[0] = 0;
}
result[result.length - 1] = 1;
result[result.length - 2] = 0;
for (int i = 0; i < arr1.length - 2; i++) {
result[i + 1] = arr1[i] + arr1[i + 2];
}
return result;
}

private void print(int[] temp){
for(int i=0;i<temp.length;i++){
if(temp[i] == 0)
System.out.print(" ");
else
System.out.print(temp[i]);
}
System.out.println();
}
}
第3个回答  2009-04-25
这个就是输出杨辉三角嘛,百度上现成的已经多得很了
相似回答