楊輝三角問題:
楊輝三角是按照一定規律排列而成的數字。在這裡我們可以用程式來進行輸出,比較容易。
首先用C語言說明問題代碼,在本文章最後有C++的代碼供參考。
楊輝三角的形式為:
*
**
*
實際上我們可以對他進行簡化:
*
**
然後加上輸出幾個空格,這樣子就變成了三角行了。。
所謂的楊輝三角每一行的數字都有來源,是它的肩膀上的兩個數字相加而成的,在使用二維數組的同時,可以用語句:
a[i][j]=a[i-1][j]+a[i-1][j-1]
然後配合空格的輸出完成:(上代碼)
#include<stdio.h>
int main()
{
int n,a[10][10]={0},i,j,k;
while (scanf("%d",&n)!=EOF&&(n>=1&&n<=10))
{
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(i==j||j==0) //買一行的第一個是1加上對角線是1
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];//其餘的用肩膀上的兩個數字相加
}
}
//輸出程式:(倒置的楊輝三角輸出)
for(i=0;i<n;i++)
{
for(j=0;j<i;j++) //輸出空格
printf(" "); //空格由少變多
for(k=0;k<n-i;k++)
{
printf("%3d",a[n-i-1][k]); //倒着從數組裡邊取出數字輸出
printf(" ");
}
printf("\n");
}
printf("\n");
}
return 0;
//正楊輝三角輸出:
for(i=0;i<n;i++)
{
for(j=n-i;j>0;j--)
printf(" ");
for(k=0;k<=i;k++)
{
printf("%3d",a[i][k]);
printf(" ");
}
printf("\n");
}
}