HDU 5050 Java 大数类+读入二进制

http://acm.hdu.edu.cn/showproblem.php?pid=5050

才知道 原来JAVA这么好用,连二进制都封装好了

in.nextBigInteger(2)  就是按二进制读入

当然a.gcd(b).toString(2)  是按二进制输出一个二进制String,  a,b是大数

另外,JAVA交代码原来是class Main

import java.math.BigInteger;
import java.util.Scanner; 

public class Main {

	public static void main(String args[]){
		Scanner sc = new Scanner(System.in);
		int ncase;
		ncase= sc.nextInt();
		for(int i=1;i<=ncase;i++){
			BigInteger a=sc.nextBigInteger(2);
			BigInteger b=sc.nextBigInteger(2);
			System.out.println("Case #"+i+": "+a.gcd(b).toString(2));
		}
	}

}
时间: 2024-10-14 02:17:42

HDU 5050 Java 大数类+读入二进制的相关文章

多校第六场 HDU 4927 JAVA大数类

题目大意:给定一个长度为n的序列a,每次生成一个新的序列,长度为n-1,新序列b中bi=ai+1?ai,直到序列长度为1.输出最后的数. 思路:这题实在是太晕了,比赛的时候搞了四个小时,从T到WA,唉--对算组合还是不太了解啊,现在对组合算比较什么了-- import java.io.*; import java.math.*; import java.util.*; public class Main { public static void main(String[] args) { Sca

HDU 5047 Sawtooth (JAVA大数类)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5047 题面: Sawtooth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1636    Accepted Submission(s): 637 Problem Description Think about a plane: ● O

hdu 4927 Java大数

http://acm.hdu.edu.cn/showproblem.php?pid=4927 [解法]:最后的结果是C(n-1,0)*a[n] -C(n-1, 1) * a[n-1] ……C(n-1,n-1)*a[1].符号位一正一负交替. 因为n有3000 之大,算C(n,i) 时要用到大数. 诶  其实早就把公式推出来了,就是坑在Java语言不熟悉,在编译的时候总是出现这个 我们一直以为是语法错误,但是又发现有什么地方写错了,卡了几个小时,人都要抓狂了. 今天拿着后面过的代码跟第一个交的比较

HDU高精度总结(java大数类)

  HDU1002   A + B Problem II [题意]大数相加 [链接]http://acm.hdu.edu.cn/showproblem.php?pid=1002 Sample Input 2 1 2 112233445566778899 998877665544332211 Sample Output Case 1: 1 + 2 = 3 Case 2: 112233445566778899 + 998877665544332211 = 1111111111111111110 代码

Java大数类介绍

java能处理大数的类有两个高精度大整数BigInteger 和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal;或者import java.math.*; 下面从几个方面对BigInteger和BigDecima做一个简单的比较: 一.常量 BigInteger:ONE,ZERO,TEN分别代表1,0,10. 其定义类似于:pub

java大数类操作以及应用(UVA)

首先,先看看java大数的基本操作 Ⅰ基本函数: 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger b=BigInteger.valueOf(a); 则b=3; String s="12345"; BigInteger c=BigInteger.valueOf(s); 则c=12345: 2.add(); 大整数相加 BigInteger a=new BigInteger("23"); BigIntege

(部分转载,部分原创) java大数类(1)

头文件: import java.io.*; import java.util.*; import java.math.*; BigInteger属于java.math.BigInteger 读入:  Scanner cin = Scanner (System.in); while(cin.hasNext())//等价于!=EOF n=cin.nextInt(x);//读入一个int型x进制的数,一般x缺省,默认十进制 n=cin.nextBigInteger(x);//读入一个x进制的大整数,

JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)

当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 1 BigInteger bInt = new BigInteger("123123"); 2 BigDecimal bDouble = new BigDecimal("123123.123123124"); 基础操作(取模使用divideAndRemainder方法,返回的数组第二个元素为余数): BigDecimal在做除法时必须设定传入精度(保留多少位小数),否则会出现异常:java.l

HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)

Big Number 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1212 --每天在线,欢迎留言谈论. 题目大意: 给你两个数 n1,n2.其中n1 很大很大,n1%n2的值. 知识点: ①秦九韶公式:例:1314= ((1*10+3)*10+1)*10+4 ②(a*b)%c == (a%c)*(b%c) .(a+b)%c == (a%c)+(b%c) . 思路: 每步取模即可. C++ AC代码: 1 #include <iostream>