博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA - 839 Not so Mobile
阅读量:5322 次
发布时间:2019-06-14

本文共 835 字,大约阅读时间需要 2 分钟。

/*  此题代码看似极其简短,但要理解,还是需要想比较久,考虑清楚代码的真正含义。    值得重做,对于递归的理解很有帮助!    该题最重要的部分是,递归输入;并且运用引用,使得在输入时,便可完成平衡的判断    这题的引用的使用是否巧妙,值得好好体会,时不时重看!*/

#include 
using namespace std;//输入一个子天平,返回天平是否平衡,参数W修改为子天平的总重量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; //其实如果只考虑最上层的天平,这步似乎没什么意义;但其实它的意义在于,在当前是递归到一个子天平的情况时,就要重新输入子天平所在处的左右天平,如果有了这句代码,参数 W1 或者 W2,最终就能变为子天平上的两个左右天平的总重量。如此,等到判断 D1 * W1 == D2 * W2时,W1 和 W2就都不会是0了,而是该子天平下所有子天平的总重量(如果有的话,没有子天平,就还是它本身的质量,总之不会是0,而是它自己或是自己所有子天平的重量) 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 0;}

转载于:https://www.cnblogs.com/mofushaohua/p/7789401.html

你可能感兴趣的文章
数据挖掘算法之关联规则挖掘(二)FPGrowth算法
查看>>
final域的内存语义
查看>>
perl处理menu菜单项,把代码转成fbp文件格式
查看>>
学习进度条博客
查看>>
unix网络编程 str_cli epoll 非阻塞版本
查看>>
JS规则 给变量取个名字(变量命名) 必须以字母、下划线或美元符号开头;区分大小写;不允许使用JS关键字或保留字...
查看>>
如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
查看>>
pcie dma的玩法
查看>>
BZOJ1043 [HAOI2008]下落的圆盘
查看>>
SqlDbx连接oracle(无需安装Oracle客户端)
查看>>
关于Membership和身份认证的记录
查看>>
斐波拉契数列
查看>>
PLAY2.6-SCALA(十) 模板引擎Twirl
查看>>
Junit单元测试初级(一)
查看>>
OC 方法声明使用
查看>>
mysql复习笔记
查看>>
通过JDBC连接hive
查看>>
leetcode 144. Binary Tree Preorder Traversal
查看>>
[杂项] 知识综合运用
查看>>
PostgreSQL的 initdb 源代码分析之十三
查看>>