黑马程序员技术交流社区
标题:
简化,用一维数组打印杨辉三角
[打印本页]
作者:
Aaron_wang
时间:
2015-11-20 23:40
标题:
简化,用一维数组打印杨辉三角
本帖最后由 Aaron_wang 于 2015-11-20 23:49 编辑
分别用一维数组和二维数组的方法打印出杨辉三角。
使用二维数组的方法比较简单。如果使用一维数组的话,需要反复对一维数组重写并打印,重写数组时注意要反向遍历重写数组,否则会出错哦~
class YangHui
{
public static void main(String[] args)
{
yangHui_1(6);
yangHui_2(6);
}
//使用二维数组
public static void yangHui_1(int num)
{
//第一列为1
int[][] arr = new int[num][num];
//System.out.println(arr.length);
for (int i=0; i
{
arr[i][0]=1;
}
//其余部分
for (int i=1; i
{
for (int j=1; j<=i; j++)
{
arr[i][j] = arr[i-1][j-1]+arr[i-1][j];//规律体现
}
}
//打印输出
for (int i=0; i
{
for (int j=0; j<=i; j++)
{
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
//使用一维数组
public static void yangHui_2(int num)
{
int[] arr = new int[num];
arr[0] = 1;
for (int i=1; i<=num; i++)//控制打印次数,num次.i表示打印的第i行
{
sop(i,arr);//输出当前数组
System.out.println();
if(i==num) break;//i==num说明打印完成,跳出循环
for (int j=i; j>0; j--)//改造数组
{
arr[j] = arr[j]+arr[j-1];
}
}
}
//打印方法
public static void sop(int num,int[] arr)
{
for (int i=0; i
{
System.out.print(arr[i]+"\t");
}
}
}
复制代码
作者:
Aaron_wang
时间:
2015-11-21 23:35
自顶一个
作者:
隔壁马良
时间:
2015-11-22 00:44
我也来顶一下
作者:
Aaron_wang
时间:
2015-11-22 01:11
隔壁马良 发表于 2015-11-22 00:44
我也来顶一下
谢谢谢{:3_57:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2