2016年11月27日 星期日

帕斯卡三角形

--------前情提要---------------------
基本上帕斯卡從第三列開始 都是上面兩個相加等的和(我只要把每個值存到陣列之後就能相加了)
然後"1"在每列的頭以及列的尾出現所以我這樣切 中間的值就用陣列相加就足夠了


--------------------------------------------
import java.util.*;
public class Pt
{
public static void main (String[] args)
{
Scanner sc= new Scanner(System.in);
int a,x=1,z;
a=sc.nextInt();//讀需要幾列
int [][] box=new int[a][a];//創造二維陣列陣列 這個大小只要大於等於存放的空間就可以了
for(int i=0;i<a;i++)//注意!i控制列 j控制裡面的行不懂直接帶值跑一次就知道了
{
z=(a-1)-i;//z做空格調整每一列空格數量
for(int y=1;y<=z;y++)
{
System.out.print(" ");
}
for(int j=0;j<=i;j++)
{
if(j==0||i==j)//如果在這列的頭或在這列的尾那麼我們就固定輸入"1"且存到陣列裡
{
box[i][j]=x;
System.out.print(box[i][j]+" ");
}
else//不是的話 那麼就是上面兩個值做相加動作(陣列相加)
{
box[i][j]=box[i-1][j-1]+box[i-1][j];//i-1往上面找前一列j找上一列的第幾個

System.out.print(box[i][j]+" "); //加完之後輸出
}
}
System.out.println(""); //每做完一列(i)就換行
}
}
}

-----------------執行結果如下--------------------------------



沒有留言:

張貼留言