博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 5050 Divided Land(进制转换)
阅读量:4330 次
发布时间:2019-06-06

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

题意  给你两个二进制数m,n   求他们的最大公约数  用二进制表示  0<m,n<2^1000

先把二进制转换为十进制  求出最大公约数  再把结果转换为二进制  数比較大要用到大数

import java.util.*;import java.math.*;public class wl6_9 {	static BigInteger two = BigInteger.valueOf(2), one = BigInteger.ONE,			zero = BigInteger.ZERO;	static BigInteger gcd(BigInteger a, BigInteger b) {		while (!(a.mod(b).equals(zero))) {			BigInteger t = a.mod(b);			a = b;			b = t;		}		return b;	}	static void bprint(BigInteger x) {		if (x.equals(zero))			return;		bprint(x.divide(two));		if (x.mod(two).equals(one))			System.out.print(1);		else			System.out.print(0);	}	public static void main(String[] args) {		Scanner in = new Scanner(System.in);		int T = in.nextInt();		String a, b;		for (int t = 1; t <= T; t++) {			a = in.next();			b = in.next();			int la = a.length(), lb = b.length();			BigInteger m = zero, n = zero;			for (int i = 0; i < la; ++i) {				m = m.multiply(two);				if (a.charAt(i) == '1')					m = m.add(one);			}			for (int i = 0; i < lb; ++i) {				n = n.multiply(two);				if (b.charAt(i) == '1')					n = n.add(one);			}			System.out.printf("Case #%d: ", t);			bprint(gcd(m, n));			System.out.println();		}		in.close();	}}

Divided Land

Problem Description
It’s time to fight the local despots and redistribute the land. There is a rectangular piece of land granted from the government, whose length and width are both in binary form. As the mayor, you must segment the land into multiple squares of equal size for the villagers. What are required is there must be no any waste and each single segmented square land has as large area as possible. The width of the segmented square land is also binary.
 
Input
The first line of the input is T (1 ≤ T ≤ 100), which stands for the number of test cases you need to solve.
Each case contains two binary number represents the length L and the width W of given land. (0 < L, W ≤ 21000)
 
Output
For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then one number means the largest width of land that can be divided from input data. And it will be show in binary. Do not have any useless number or space.
 
Sample Input
 
3 10 100 100 110 10010 1100
 
Sample Output
 
Case #1: 10 Case #2: 10 Case #3: 110
 
Source
 

转载于:https://www.cnblogs.com/mengfanrong/p/4019222.html

你可能感兴趣的文章
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_3 用于创建的Component注解
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_04.ssm整合之编写SpringMVC框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>