Lazy_make_name @ 2024-03-03 22:32:41
我无论输入怎样的金字塔,都只会输出最顶端的数 如:输入
我这会输出1 代码:
#include<iostream>
using namespace std;
int k[1001][1001];
int n[1001][1001];
int jisuan(int a,int b){
if(k[a-1][b]>k[a-1][b-1])
return n[a][b]+k[a-1][b];
else
return n[a][b]+k[a-1][b-1];
}
int main(){
int r;
cin>>r;
for(int i=1;i<=r;i++)
for(int j=1;j<=i;j++)
cin>>n[i][j];
for(int i=1;i<=r;i++)
k[r-1][i]=n[r-1][i];
for(int i=r;i>=1;i--)
for(int j=1;j<=i;j++)
k[i][j]=jisuan(i,j);
cout<<k[1][1];
}
by lcfollower @ 2024-03-03 22:41:03
@13860121259
为什么要 r-1?
by lcfollower @ 2024-03-03 22:42:13
你的计算方式属于正推,需要正着循环,并且在最后一层比最大值。
by Fractured_Angel @ 2024-03-03 22:44:21
啊?你这是啥方法()