// 11届蓝桥C组数字三角形.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //思想:递归 #include <iostream> using namespace std;//用了这句代码变量不要取名为max或min否则会提示变量不明确 int ma = 0; int a[101][101]; void judge(int left, int right, int y, int x,int N,int sum)//y为层数,x是该层的第几个数字,sum是数字累加是和 { if (y != N) { sum+= a[y][x]; judge(left + 1, right, y + 1, x, N,sum); judge(left, right + 1, y + 1, x + 1, N,sum); } else//递归边界 { sum += a[y][x]; if ((left - right) == 1 || (left - right) == -1||left==right) if (sum > ma) ma = sum; } } int main() { int i, j, k,N, l, g; cin >> N; for(i=1;i<=N;i++) for (j = 1; j <= i; j++) { cin >> k; a[i][j] = k; } judge(0, 0, 1,1,N,0); cout << ma;//答案27 } /* 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 */