為什麼這篇帕斯卡三角形c鄉民發文收入到精華區:因為在帕斯卡三角形c這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者wxtab019 (天霜凝月)看板C_and_CPP標題[問題] 用一階陣列寫巴斯卡三角形時間F...
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2010
問題(Question):
我想用一階陣列寫出巴斯卡三角形
用一個b[]和c[]的一維陣列
c[j]=b[j-1]+b[j];
這樣讓他跑下去
不過不知道為什麼一行c[j]=b[j-1]+b[j];跑完的時候
b[j-1]都會變成和c[j]一樣
所以當跑下一個j=j+1的時候
就會等於說本來的c[j]=b[j-1]+b[j];
上左 上
會變成 c[j]=c[j-1]+b[j]
左邊 上
變成是上面和左邊相加了
所以跑出來就會變成
1
1 1
1 2 1
1 3 4 1
1 4 8 9 1
1 5 13 22 23
不知道是不是哪裡寫錯了...
程式碼(Code):(請善用置底文網頁, 記得排版)
int a,i,j;
cout<<"請輸入要幾層的巴斯卡三角型:";cin>>a;cout<<"\n";
int *b,*c;
b=new int[a];
c=new int[a];
*b=1;
*c=1;
*(c+1)=1;
for(i=0;i<=a;i++)
{
if(i>=2)
{
for(j=1;j<=i;j++)
{
c[j]=b[j-1]+b[j];
c[i]=1;
}}
for(j=0;j<=i;j++)
{
cout<<"i="<<i<<" "<<"j="<<j<<" "<<c[j]<<" ";
}
cout<<"\n";b=c;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.237.62