BC140. 杨辉三角
描述
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
输入描述
第一行包含一个整数数n。 (1≤n≤30)输出描述
包含n行,为杨辉三角的前n行,每个数输出域宽为5。
示例1
输入:
6
输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
C 解法, 执行用时: 1ms, 内存消耗: 324KB, 提交时间: 2021-09-10
#include<stdio.h> int main() { int n; scanf("%d",&n); int i,j; int a[30][30]={0}; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(j==0||i==j) { a[i][j]=1; } if(i>1&&j>0) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(i>=j) { printf("%5d",a[i][j]); } } printf("\n"); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2021-07-24
#include<stdio.h> int main(){ int n,i,j; scanf("%d",&n); int a[30][30]; for(i=0;i<n;i++) for(j=0;j<=i;j++){ a[i][0]=1; a[i][i]=1; } for(i=2;i<n;i++) for(j=1;j<i;j++) 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("%5d",a[i][j]); printf("\n"); } }
C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2021-05-03
#include<stdio.h> int main() { int n=0; scanf("%d",&n); int arr[30][30]={0}; for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { if(j==0||j==i) { arr[i][j]=1; printf("%5d",1); } else { arr[i][j]=arr[i-1][j-1]+arr[i-1][j]; printf("%5d",arr[i][j]); } } printf("\n"); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2020-12-26
#include<stdio.h> int main() { int n = 0; scanf("%d",&n); int arr[30][30]; int i = 0; int j = 0; for(i = 0;i < n;i++) { for(j = 0;j <= i;j++) { if(j == 0||j == i) { arr[i][j] = 1; printf("%5d",1); } else { arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; printf("%5d",arr[i][j]); } } printf("\n"); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2020-12-24
#include <stdio.h> int Is_num(int i, int j) { if (j == 1 || j == i) return 1; else return Is_num(i - 1, j) + Is_num(i - 1, j - 1); } int main() { int n, i, j; scanf("%d", &n); for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { printf("%5d", Is_num(i, j)); } printf("\n"); } return 0; }