資料結構示例之楊輝三角形
阿新 • • 發佈:2019-02-15
以下為輸出“楊輝三角形”的簡單示例:
1.用c語言實現的版本
#include<stdio.h> int c(int x,int y); void main() { int i,j,n=0; printf("Please input the value of n(n>=0):");/*控制輸入正確的值以保證螢幕顯示的圖形正確*/ scanf("%d",&n); for(i=0; i<=n; ++i) /*控制輸出N+1行*/ { for(j=0; j<2*n-2*i; ++j) { printf(" "); /*控制輸出第i行前面的空格*/ } for(j=0; j<i+1; ++j) { printf("%5d",c(i,j)); /*輸出第i行的第j個值*/ } printf("\n"); } } /*求楊輝三角形中第x行第y列的值*/ int c(int x,int y) { int z; if ((y==0)||(y==x)) { return 1; /*若為x行的第1或第x+1列,則輸出1*/ } z = c(x-1,y-1) + c(x-1,y); /*否則,其值為前一行中第y-1列與第y列值之和*/ return z; }
2.用C++實現的版本
#include<iostream> int c(int x,int y); void main() { int i,j,n=0; std::cout<<"Please input the value of n(n>=0):";/*控制輸入正確的值以保證螢幕顯示的圖形正確*/ std::cin>>n; for(i=0; i<=n; ++i) /*控制輸出N+1行*/ { for(j=0; j<2*n-2*i; ++j) { std::cout<<" "; /*控制輸出第i行前面的空格*/ } for(j=0; j<i+1; ++j) { std::cout.width(5); std::cout<<c(i,j); /*輸出第i行的第j個值*/ } std::cout<<std::endl; } } int c(int x,int y) {/*求楊輝三角形中第x行第y列的值*/ int z; if ((y==0)||(y==x)) { return 1; /*若為x行的第1或第x+1列,則輸出1*/ } z = c(x-1,y-1) + c(x-1,y); /*否則,其值為前一行中第y-1列與第y列值之和*/ return z; }
執行結果如下圖所示: