UVa839-Not so Mobile (天平)

来源:互联网 发布:非法集资判定知不知情 编辑:程序博客网 时间:2024/05/24 06:27

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
原创粉丝点击