济南做网站的中企一键logo设计app
news/
2025/10/2 15:21:12/
文章来源:
济南做网站的中企,一键logo设计app,网站新建设请示,洛阳网站开发培训题目
输入一个树状天平#xff0c;根据力矩相等原则判断是否平衡。如图6-5所示#xff0c;所谓力矩相等#xff0c;就是WlDlWrDr#xff0c;其中Wl和Wr分别为左右两边砝码的重量#xff0c;D为距离。采用递归#xff08;先序#xff09;方式输入#xff1a;每个天平的…题目
输入一个树状天平根据力矩相等原则判断是否平衡。如图6-5所示所谓力矩相等就是WlDlWrDr其中Wl和Wr分别为左右两边砝码的重量D为距离。采用递归先序方式输入每个天平的格式为WlDlWrDr当Wl或Wr为0时表示该“砝码”实际是一个子天平接下来会描述这个子天平。当WlWr0时会先描述左子天平然后是右子天平。
样例输入
1 0 2 0 4 0 3 0 1 1 1 1 1 2 4 4 2 1 6 3 2
输出 YES
分析与解答
刘汝佳说要完全理解这个程序那我就把递归过程写了一下 输入采用先序并且输入顺序刚好就是递归的顺序那就可以在输入过程进行判断 对每个结点判断如果有子节点那么就要判断左右子树是否平衡以及这个树本身是否平衡b1为true说明左子树平衡b2右子树w1是左边子天平所有砝码的总重量w2右边。w1*d1w2*d2说明这个树平衡。由于solv函数采用传引用方式所以每次那一层的函数返回时w1和w2都已经分别赋为那个子树所有重量的和
#includeiostream
using namespace std;bool solve(int w)
{int w1,d1,w2,d2;bool b1true,b2true;cinw1d1w2d2;if(!w1) b1solve(w1);if(!w2) b2solve(w2);ww1w2;return b1b2(w1*d1w2*d2);
}int main(){int t,w;cint;while(t--){if(solve(w)) coutYES\n;else coutNO\n;if(t) cout\n;}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925035.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!