UVa839-Not so Mobile (天平)

UVa839-Not so Mobile (天平)

输入一个树状天平根据力矩相等原则判断是否平衡。所谓力矩相等,就是W1D1=W2D2,其中W1,W2分别为左右两边砝码的重量,D为距离。

采用递归(先序)方式输入:每个天平的格式为W1,D1,W2,D2,当W1或W2为0时,表示该“砝码”实际是一个子天平,接下来会描述这个子天平。当W1=W2=0时,会先描述左子天平,然后是右子天平。

样例输入:

1

0 2 0 4

0 3 0 1

1 1 1 1

2 4 4 2

1 6 3 2

import java.util.Scanner;

public class Test
{
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int num,w = 0;
		num = cin.nextInt();//多个天平
		while (num!=0)
			{
			num--;
			if(slove(w))System.out.println("Yes");
			else 		System.out.println("No");
			}
	}// main
	
	//构造一个子天平,返回子天平是否平衡,参数w修改为子天平的总重量。
	private static boolean slove(int w){
		Scanner cin = new Scanner(System.in);
		int w1,d1,w2,d2;
		boolean b1=true,b2=true;
		w1=cin.nextInt();
		d1=cin.nextInt();
		w2=cin.nextInt();
		d2=cin.nextInt();
		if(w1==0) b1=slove(w1);
		if(w2==0) b2=slove(w2);
		w=w1+w2;//子天平总重量。
		return b1&&b2&&(w1*d1==w2*d2);
		//只有子天平平衡,总天枰才会平衡。
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值