当前位置: 首页> 教育> 大学 > 数字塔问题

数字塔问题

时间:2025/7/27 6:06:26来源:https://blog.csdn.net/qq_74256533/article/details/139448892 浏览次数:0次

#include<iostream>
using namespace std;
//从下向上得到最优值
void dtower(int a[][100],int s[][100],int n)
{for(int i=n; i>=1; i--){for(int j=1; j<=i; j++){if(i==n)s[i][j]=a[i][j];else{int t=s[i+1][j];if(t<s[i+1][j+1])t=s[i+1][j+1];s[i][j]=a[i][j]+t;}}}
}
void Traceback(int a[][100],int s[][100],int n,int i,int j)
{if(i==n)cout<<i<<" "<<j<<endl;else{cout<<i<<" "<<j<<endl;if(s[i][j]==a[i][j]+s[i+1][j])Traceback(a,s,n,i+1,j);elseTraceback(a,s,n,i+1,j+1);}
}
int main()
{int n;cin>>n;int a[100][100]={0},s[100][100]={0};for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)cin>>a[i][j];dtower(a,s,n);cout<<"s[i][j]:"<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++)cout<<s[i][j]<<" ";cout<<endl;}Traceback(a,s,n,1,1);return 0;
}

5
30
23 21 
20 13 10
7 12 10 22
4 5 2 6 5

关键字:数字塔问题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: