Uva839——Not so Mobile

本文介绍了一种使用递归算法来判断虚拟天平是否平衡的方法。通过输入天平两端的重量及其对应的杠杆长度,算法能够处理嵌套的子天平情况,并最终确定整个系统的平衡状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断天平是否平衡,W1 或 W2 为0,表示为子天平。递归过程中来输入并判断。


代码:

#include <iostream>
using namespace std;

bool fun(int& n)
{
	int a1, b1, a2, b2;
	bool a = true, b = true;   //a表示左是否平衡,b表示右是否平衡
	cin >> a1 >> b1 >> a2 >> b2;
	if(!a1)
		a = fun(a1);
	if(!a2)
		b = fun(a2);

	n = a1 + a2;
	return a && b && (a1 * b1 == a2 * b2);
}

int main()
{
	int m, n;
	cin >> m;
	while(m--)
	{
		if(fun(n))
			cout << "YES" << endl;
		else
			cout << "NO" << endl;
		if(m)
			cout << endl;
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值