[Hanani]JAVA大数相关学习记录
1.Basic remains 题目链接
涉及内容:
|大数读入|大数模|大数进制读入时转化为十进制|大数输出时转化为其他进制输出|
import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;//各种头文件
public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);//读入
        int b;
        BigInteger p,m;
        while(cin.hasNextInt()) {
            b = cin.nextInt();
            if(b==0) break;
            p = cin.nextBigInteger(b);//把读入的各种进制转化为10进制
            m = cin.nextBigInteger(b);
            BigInteger k = p.mod(m);//大数模
            String ans = k.toString(b);//将数字转化为字符串(b进制)
            System.out.println(ans);
        }
    }
}
2.Octal Fractions 题目链接
涉及内容:
|大小数|去尾零|
import java.util.*;
import java.math.*;
public class Main{
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        while(cin.hasNext()) {
            String s = cin.nextLine();//读入一行字符串
            BigDecimal a = BigDecimal.ZERO;//读入大小数
            BigDecimal b = BigDecimal.ONE;
            for (int i = 2; i < s.length(); i++) {//处理小数点后的数字
                double d = s.charAt(i) - '0';//java中的字符串中字符获取s.charAt()
                b = b.divide(BigDecimal.valueOf(8));//大小数除
                a = a.add(b.multiply(BigDecimal.valueOf(d)));//ans加
            }
            System.out.println(s + " [8] = " + a.stripTrailingZeros() + " [10]");
            //a.stripTrailingZeros()去除末尾零
        }
    }
}
3.NUMBER BASE CONVERSION 题目链接
涉及内容:
|BigInteger与int转化|
import java.util.*;
import java.math.*;
public class Main{
    static int ctoi(char cc) {
        if (cc >= '0' && cc <= '9') return cc - '0';
        else if(cc >= 'A' && cc <= 'Z') return cc - 'A' + 10;
        else return cc - 'a' +36;
    }
    static char itoc(int now) {
        if (now >= 0 && now <= 9) return (char) (now + '0');//记得括号
        else if (now >= 10 && now <= 35) return (char) (now - 10 + 'A');
        else return (char) (now - 36 + 'a');
    }
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n;
        n = cin.nextInt();
        for (int i = 1; i <= n; i++) {
            int a = cin.nextInt();
            int b = cin.nextInt();
            String s = cin.next();
            BigInteger now = BigInteger.valueOf(0);
            BigInteger c = BigInteger.valueOf(1);
            for (int j = s.length()-1; j >= 0; j--) {
                now = now.add(c.multiply(BigInteger.valueOf(ctoi(s.charAt(j)))));
                c = c.multiply(BigInteger.valueOf(a));
            }
            String ans = "";
            while (!now.equals(BigInteger.valueOf(0))) {
                ans = itoc(now.mod(BigInteger.valueOf(b)).intValue()) + ans;//intValue()注意下
                now = now.divide(BigInteger.valueOf(b));
                //System.out.println(now);
            }
            if (ans.equals("")) ans = "0";空串判定
            System.out.println(a + " " + s);
            System.out.println(b + " " + ans);
            System.out.println("");
        }
    }
}												
											[Hanani]JAVA大数相关学习记录的更多相关文章
- java 项目相关 学习记录
		
一位资深程序员大牛给予Java初学者的学习路线建议 [任何时期都可以好好看看] https://www.imooc.com/article/8993 https://www.jianshu.com/ ...
 - Yii2的相关学习记录,下载Yii2(一)
		
原先学习过Yii1的相关知识,虽然也是半懂不懂的,但稍微的结构是了解的.现在利用晚上的时间学习下Yii2的使用,打算建一个后台管理系统,这里记录下,以免自己以后忘记. 目前已看一部分Yii2的权威指南 ...
 - 使用hibernate更新数据库记录的信息的相关学习记录
		
截选代码(可能遗漏标点符号): package name.sql; import java.util.List; import name.session.HibernateSessionFactory ...
 - Yii2的相关学习记录,前后台分离及migrate使用(七)
		
最近一直忙其它的(其实是懒!),将<深入理解Yii2>看了一遍,一些当初没明白的稍微明了了点,然后又看yii2的图片上传等处理.富文本.restful什么的,但由于没进行到这里,只看也不管 ...
 - Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)
		
呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用 ...
 - Yii2的相关学习记录,初始化Yii2(二)
		
前面已经将Yii2下载下来了,那我们就需要能实际的使用. 一.初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录.然后运行下面命令: init 会提示选择0为开发 ...
 - 转:java高并发学习记录-死锁,活锁,饥饿
		
死锁 两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去. 为什么会产生死锁: ① 因为系统资源不足. ② 进程运行推进的顺序不合适. ③ ...
 - linux 相关学习记录
		
(一)概念① 物理CPU实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个② 逻辑CPU /proc/cpuinfo 用来存储cpu硬件信息的信息内容分 ...
 - JAVA 动态代理学习记录
		
打算用JAVA实现一个简单的RPC框架,看完RPC参考代码之后,感觉RPC的实现主要用到了两个方面的JAVA知识:网络通信和动态代理.因此,先补补动态代理的知识.---多看看代码中写的注释 参考:Ja ...
 
随机推荐
- 乘风破浪:LeetCode真题_035_Search Insert Position
			
乘风破浪:LeetCode真题_035_Search Insert Position 一.前言 这次的问题比较简单,也没有限制时间复杂度,但是要注意一些细节上的问题. 二.Search Insert ...
 - route命令详解与使用实例 ,同时访问内外网
			
route命令详解与使用实例 2011-10-18 12:19:41| 分类: 其他 | 标签:route |字号 订阅 1. 使用背景 需要接入两个网络,一个是部署环境所在内 ...
 - 不要以为字段以transient修饰的话就一定不会被序列化
			
1: 先阅读这边文章:http://www.importnew.com/21517.html 2:被transient修饰真的会被序列化吗? 反例:java.util.ArrayList中底层存储数组 ...
 - php排序算法及二分法查找
			
插入排序 思想:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表.即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止. 要点:设立 ...
 - helm 部署
			
Helm 基本概念 Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现.共享和使用为Kubernetes构建的应用,它包含几个基本概念 Chart:一个 Helm 包,其中包含了 ...
 - myEtherWallet在线钱包的使用
			
https://www.myetherwallet.com/#generate-wallet myEtherWallet是一款在线钱包,当你不想安装类似metamask这样的插件时,可以选择使用它 1 ...
 - PAT B1018 锤子剪刀布 (20 分)
			
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 ...
 - zookeeper&acticemq&redis&tomcat安装
			
zookeeper安装 配置hosts 下载 wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar. ...
 - mysqldump: Got error: 1356 mysqldump的重要参数--force
			
一个MySQL的备份突然变小了很多,但实际的数据量却一直在增长.备份脚本也没有调整过.为什么呢? 重现了一下备份过程,发现备份中遇到了如下错误: mysqldump: Got error: 1356: ...
 - jqgrid 点击列头的超链接或按钮时,不触发列排序事件
			
接上篇文章:jqgrid 将列头设置为超链接或按钮 如果在列头设置了超链接或按钮,在点击超链接或按钮时会触发列的排序事件. 原由:点击超链接/按钮会触发排序的冒泡事件 解决方法:点击超链接/按钮时,阻 ...