题目链接:https://vjudge.net/problem/UVA-839

题目大意:输入一个树状天平,根据力矩相等原则,判断是否平衡。  如上图所示,所谓力矩相等,就是Wl*Dl=Wr*Dr。  其中Wl和Wr分别为左右两边砝码的重量,D为距离

采用递归的方式输入:每个天平的格式为Wl,Dl,Wr,Dr   当Wl或Wr为0时  表示该"砝码" 实际是一个子天平  接下来会描述这个子天平。当Wl=Wr=0   会先描述左子天平  然后是右子天平。

思路:解决本道题之前一定要先弄请吃题目意思,建议读者把样例输入画出来。。。

这道题的输入就采用了递归的方式定义,因此编写一个递归过程进行输入比较。  事实上 在输入过程就可以完成判断,  由于使用引用传值   代码非常精简。  本题极为重要 一定要搞懂!!!

其实很容易想到的,子天平的重量要由它下面的砝码传递上来,使用引用传递真的很方便,通过这题,也算开阔了自己对引用的视野   以前从来没有使用过引用,这也算第一道引用的题了

看代码:

#include<iostream>
using namespace std;
bool solve(int& W)
{
int W1,D1,W2,D2;
bool b1=true,b2=true;
cin>>W1>>D1>>W2>>D2;
if(!W1) b1=solve(W1);
if(!W2) b2=solve(W2);
W=W1+W2;
return b1&&b2&&(W1*D1==W2*D2);//天平两端是否相等
}
int main()
{
int T,W;
cin>>T;
while(T--)
{
if(solve(W)) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
if(T) cout<<endl;
}
return ;
}

最新文章

  1. MailKit---状态更改和删除
  2. 解决:编译CM14.1 提示Jack “Out of memory error”错误
  3. 微软Face API体验——人脸检测
  4. spring mvc 工作流程
  5. unordered容器
  6. Oracle 字符串分割排序冒泡算法
  7. github与eclipse创建仓库及克隆仓库
  8. uLua Unity工作机制
  9. kettle过滤、生成随机数、改变开始复制数量
  10. Java多线程3:Thread中start()和run()的区别
  11. 关于iPhone
  12. Android Application Thread CPU GC Operatiing and OOM Question 0603-随手笔记
  13. Vbox创建COM对象失败
  14. nginx开启后主机无法访问虚拟机的nginx解决方案
  15. calling c++ from golang with swig--windows dll(一)
  16. C# 进程的挂起与恢复
  17. 什么情况下ArrayList增删 比LinkedList 更快
  18. 【BZOJ1970】[AHOI2005]矿藏编码(模拟)
  19. java学习第05天(数组常见操作、数组中的数组)
  20. cgi与fastcgi区别_转

热门文章

  1. 3.3PCL已有点类型介绍和增加自定义的点类型
  2. ConcurrentHashMap的putIfAbsent
  3. wordCount总结
  4. Spring第四篇
  5. 多线程学习-基础( 十)一个synchronized(){/*代码块*/}简单案例分析
  6. jqueue使用ajax方式
  7. “网易大数据讲堂第一期:数说”直播活动资料:课程回放收看及PPT下载
  8. binder学习笔记(十)—— 穿越到驱动层
  9. [Django笔记] views.py 深入学习
  10. 用python面向对象的方法实现欧拉算法和龙格库塔算法