[C语言]杨辉三角形:编程计算并输出打印前n行杨辉三角形。请使用数组实现。
生活随笔
收集整理的這篇文章主要介紹了
[C语言]杨辉三角形:编程计算并输出打印前n行杨辉三角形。请使用数组实现。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入
輸入一個正整數n(0 < n <= 20)。
輸出
輸出楊輝三角形的前n行,相鄰兩項之間用一個空格隔開。
輸入示例
7
輸出示例
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
數據范圍
輸入輸出均為int范圍的整數
先找到楊輝三角的規律:任意左右相鄰兩數和等于兩數之下的數(圖片來自網絡)
題中打印案例為直角三角形而非等腰三角形,可使用2x2數組來表示,最后不需要的值不打印即可
定義2x2數組,我們分兩部分來定義,一部分為1,另一部分為其他數
找出1的索引特點,[ i ][ j ],當i=j或者列數 j 為 0 時,為1,所以:
#include <stdio.h> #include <stdlib.h> int main() {int n,i,j;scanf("%d",&n);int a[n][n];for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j||j==0){a[i][j]=1;}else{a[i][j]=a[i-1][j]+a[i-1][j-1];}}}接著打印楊輝三角,直角形式,即2x2數組形式的楊輝三角特點:只有行數大于等于列數時有值
所以:
for(i=0;i<n;i++){for(j=0;j<n;j++){if(j<=i){ //條件:行數>=列數printf("%d ",a[i][j]);}}printf("\n"); //每行打印完成后換行}return 0; }最后每行打印完成加上換行即可
綜上,代碼為:
#include <stdio.h> #include <stdlib.h> int main() {int n,i,j;scanf("%d",&n);int a[n][n];for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j||j==0){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<n;j++){if(j<=i){printf("%d ",a[i][j]);}}printf("\n");}return 0; }(代碼,解法不唯一,僅供參考)
總結
以上是生活随笔為你收集整理的[C语言]杨辉三角形:编程计算并输出打印前n行杨辉三角形。请使用数组实现。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OllyDBG 完美教程 ( 超强入门级
- 下一篇: 项目多次重复发布经常出现一个 perma