C 练习实例61 - 杨辉三角形
题目:打印出杨辉三角形(要求打印出10行)。
程序分析:
结构如下所示:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
实例
// Created by www.runoob.com on 15/11/9.
// Copyright © 2015年 菜鸟教程. All rights reserved.
//
#include <stdio.h>
int main()
{
int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++) {
a[i][0]=1;
a[i][i]=1;
}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++) {
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}
以上代码执行输出结果为:
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 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1
C 语言经典100例
德林恩宝零零
319***5092@qq.com
参考方法:
#include<stdio.h> int main() { int i,j; int a[10][10]={0,0,0,0,0,0,0,0,0,0}; for(i=0;i<=9;i++) { a[i][0]=1; printf("%5d",a[i][0]); if(i>=1) { for(j=1;j<=i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; printf("%5d",a[i][j]); } } printf("\n"); } }德林恩宝零零
319***5092@qq.com
HIT_CCC
117***2963@qq.com
参考方法:
#include<stdio.h> int main(void) { int i, j; int a[10][10]; for(i = 0; i < 10; i++) { a[i][i] = 1; a[i][0] = 1; } for(i = 2; i < 10; i++) { for(j = 1;j < i; j++) { a[i][j] = a[i - 1][j] + a[i - 1][j - 1]; } } for(i = 0; i < 10; i++) { for(j = 0; j <= i; j++) { printf("%-4d",a[i][j]); } printf("\n"); } return 0; }HIT_CCC
117***2963@qq.com
BakaCirno1001
341***2969@qq.com
参考方法:
//二项式定理 #include<stdio.h> int fact(int); int arge(int,int); //排列 int comb(int,int); //组合 int factoria(int); int main() { int i,j,n=10; for(i=0;i<n;i++) { for(j=0;j<=i;j++) { printf("%d\t",comb(i,j)); } printf("\n"); } getchar(); } int fact(int n) { int sum=1; while(n>1) sum*=n--; return sum; } int arge(int n,int m) { return fact(n)/fact(n-m); } int comb(int n,int m) { return arge(n,m)/fact(m); } int factoria(int n) { if(n<=1) return 1; else return n*factoria(n-1); }BakaCirno1001
341***2969@qq.com