- 题目描述:
-
输入n值,使用递归函数,求杨辉三角形中各个位置上的值。
- 输入:
-
一个大于等于2的整型数n
- 输出:
-
题目可能有多组不同的测试数据,对于每组输入数据,
按题目的要求输出相应输入n的杨辉三角形。
- 样例输入:
-
6
- 样例输出:
-
1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
1 #include <cstdio> 2 #include <cstdlib> 3 #include <string> 4 #include <cstring> 5 #include <algorithm> 6 7 int yang[202]; 8 9 10 int main(int argc, char const *argv[]) 11 { 12 int n; 13 while(scanf("%d",&n) != EOF) { 14 memset(yang, 0, sizeof(yang)); 15 yang[1] = 1, yang[2] = 1; 16 printf("%s ","1 1"); 17 for(int i = 3; i <= n; i++) { 18 yang[1] = 1; 19 for(int k = (i+1)/2; k >= 2; k--) { 20 yang[k] = yang[k] + yang[k-1]; 21 } 22 for(int k = 1, j = i; k <= (i+1)/2; k++,j--) { 23 yang[j] = yang[k]; 24 } 25 bool ifF = true; 26 for(int j = 1; j <= i; j++) { 27 if(ifF) { 28 printf("%d",yang[j]); 29 ifF = false; 30 } 31 else { 32 printf(" %d",yang[j]); 33 } 34 35 } 36 puts(""); 37 } 38 } 39 return 0; 40 }
从后往前加,可以只用一个数组