编程实现:输出一下的杨辉三角(要求输出10行)
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ……
1
#include<stdio.h>
int main() { int f[10][10],i,j; for(i=0;i<10;i++) { f[i][0]=1; f[i][i]=1; } for(i=2;i<10;i++) for(j=1;j<i;j++) { f[i][j]=f[i-1][j-1]+f[i-1][j]; } for(i=0;i<10;i++) { for(j=0;j<=i;j++) printf("%5d",f[i][j]); printf("\n"); } }
#include<stdio.h> #define N void yf(int n){ int a[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<=i;j++){ if(j==0 ||j ==i){ a[i][j] =1; }else{ a[i][j] = a[i-1][j]+a[i-1][j-1]; } }} for(int i=0;i<n;i++){ for(int j=0;j<=i;j++){ printf("%d ",a[i][j]); } printf("\n"); } } int main(){ int n; scanf("%d",&n); yf(n); return 0; }
。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int main(void) { //规律:第0列和对角线上的数据全部为1,其余位置上的数据为上一行正对数据与上一行正对前一个数据之和。 int num[10][10]; for (int i = 0; i < 10; i++) {//行 for (int j= 0;j<=i; j++) {//列 // 对角线和第0列上全部为1 if (i == j || 0 == j) { num[i][j] = 1; } else { num[i][j] =num[i - 1][j] +num[i - 1][j - 1]; } } } // 打印杨慧三角的前10行 for (int i = 0; i < 10; ++i) { for (int j = 0; j <= i; ++j) { printf("%d ", num[i][j]); }
printf("\n"); }
return 0; }
【答案解析】
仔细观察杨慧三...
用户登录可进行刷题及查看答案
仔细观察杨慧三角可以看到:
第0列和对角线上的数据全部为1,其余位置上的数据为上一行正对数据与上一行正对前一个数据之和。
比如:a[4][2] = a[3][2] + a[3][1]
#include<stdio.h> int main() { int array[10][10]; for (int i = 0; i < 10; ++i) { for (int j = 0; j <= i; ++j) { // 对角线和第0列上全部为1 if (i == j || 0 == j) array[i][j] = 1; else array[i][j] = array[i - 1][j] + array[i - 1][j - 1]; } } // 打印杨慧三角的前10行 for (int i = 0; i < 10; ++i) { for (int j = 0; j <= i; ++j) { printf("%5d", array[i][j]); } printf("\n"); } return 0; }
登录后提交答案