JAVA求解大数

题目链接:CLICK HERE~

有了Java求解大数变得如此简单,以后再也不用担心大数模板了。哦啦啦啦。

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

class Main{
     public static void main(String args[]){
        Scanner cin = new Scanner(System.in);
        while(cin.hasNext()){
        	int b = cin.nextInt();
        	BigInteger p,m,res;
        	if(b == 0)break;
        	p = cin.nextBigInteger(b);    //以b进制读入,结果自动转换成十进制
        	m = cin.nextBigInteger(b);
        	res = p.mod(m);
        	String ans = res.toString(b);  //将结果转换成b进制的字符串
        	System.out.println(ans);
        }
   }
}

JAVA求解大数

时间: 2024-10-22 13:44:00

JAVA求解大数的相关文章

HDU 4873 ZCC Loves Intersection(JAVA、大数、推公式)

在一个D维空间,只有整点,点的每个维度的值是0~n-1 .现每秒生成D条线段,第i条线段与第i维度的轴平行.问D条线段的相交期望. 生成线段[a1,a2]的方法(假设该线段为第i条,即与第i维度的轴平行)为,i!=j时,a1[j]=a2[j],且随机取区间[0,n-1]内的整数.然后a1[i],a2[i]在保证a1[i]<a2[i]的前提下同样随机. 由于D条线段各自跟自己维度的轴平行,我们可以转换成只求第i个维度与第j个维度的相交期望,然后乘以C(2,n)就好了 显然线段[a1,a2]和线段[

初学java之大数处理

1 import java.text.*; 2 public class Gxjun 3 { 4 public static void main(String args[] ) 5 { 6 int n=123456789; 7 System.out.println("整数"+"按千分组号(带正好)"); 8 String s=String.format("%,+d",n); 9 System.out.println(s); 10 double n

Java的大数操作分为BigInteger和BigDecimal

Java的大数操作分为BigInteger和BigDecimal,但这两给类是分开使用的,有时候在编程的时候显得略微繁琐,现在编写了一个将二者合二为一的大数操作类. 大数操作类代码如下: 1 package blog; 2 3 import java.math.BigDecimal; 4 import java.math.BigInteger; 5 import java.math.RoundingMode; 6 7 /** 8 * 9 * @author 瓦尔登湖畔的小木屋 10 * BigN

java实现大数相加问题

闲来没事.写了个acm中常常遇到的大数加减问题的java 解决代码,我想说.用java的BigInteger 非常easy. 大爱java!! 比如: 实现多组输入的大数加减问题: import java.math.*; import java.util.*; public class Bignum { public static void main(String[] args) { BigInteger bigNumOne; BigInteger bigNumTwo; Scanner in =

java版大数相乘

在搞ACM的时候遇到大数相乘的问题,在网上找了一下,看到了一个c++版本的 http://blog.csdn.net/jianzhibeihang/article/details/4948267 用java搞了一个版本 这里说一下思路 将数字已字符串形式接收,转换成int[]整型数组,然后num1[],num2[]依次相乘,结果保存到result[]中 其他注意的在注释中有说明 1 package com.gxf.test; 2 3 import java.util.Scanner; 4 5 p

JAVA求解全排列

一,问题描述 给定一个字符串,求出该字符串的全排列. 比如:"abc"的全排列是:abc.acb.bac.bca.cab.cba 二,实现思路 采用递归的方式求解.每次先选定一个字符,然后进行“若干次”交换,求出在选定这个字符的条件下,所有的全排列,并把字符“复位”再交换回来.至此,一趟全排列完成.第二趟,选定下一个字符,然后进行“若干次”交换,求出在选定这个字符的条件下,所有的全排列,并把字符“复位”再交换回来...... 就类似于:(参考网上的解释如下:) 设R={r1,r2,..

UVA10862 - Connect the Cable Wires(递推 + java的大数)

题目链接 题目大意:给你n座房子位于一条直线上,然后仅仅给你一个cable service.要求每座房子都连上有线,方式能够是间接的通过这个房子的直接邻居连接(前提是它的邻居要连上有线),第二种是直接连上cable service也是能够的. 解题思路:把后面的房子编号为1,前面的为n.如果我们要连1号房子,那么它有三种可能. 1.直接和cable service连接,那么就是加上f(n - 1)种(前面的n - 1座房子的组合方式). 2.和2号房子连接不和cable service连接,那么

JAVA求解线性方程组-列主元高斯消去法

1 package MyMath; 2 3 import java.util.Scanner; 4 5 public class Gauss { 6 7 /** 8 * @列主元高斯消去法 9 */ 10 static double x[]; 11 static double a[][]; 12 static double b[]; 13 static double m; 14 static int n; 15 //选主元 16 public static void SelectAndChang

Java实现大数加法运算的几种方法

大数加法 思路一:定义String变量str1和str2分别存储输入的两个大数,定义num1[]和num2[]两个int型数组,将两个字符串分别逐个字符逆序存入数组,定义sum[]数组存放求和结果,使用循环两个数组中的元素逐位相加,并判断是否进位,最后逆序输出数组sum[]中的每个元素. 1 import java.util.Scanner; 2 3 public class largenumberOperationAdd { 4 public static void main(String[]