前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java大数基本操作

Java大数基本操作

作者头像
wenzhuan
发布2022-08-15 12:33:47
3120
发布2022-08-15 12:33:47
举报
文章被收录于专栏:你会烧尽还是结冰

试着整理我看Java的过程嗷

一直知道Java大数nb 一直口嗨学Java 一直没动 机缘巧合之下 看到我rank10058 想快乐rank四位数 又懒得开新题 干脆Java搞个1042(求N!) 先搜题解一行行搜看懂什么意思后交了 我看的题解是BigDecimal 但这题BigInteger就行 我后来也BigInteger过了 下面就放BigInteger的ac代码了=。=

代码语言:javascript
复制
import java.math.BigInteger; 
import java.util.Scanner;
// 大数头文件和输入头文件

public class Main {
    public static void main(String[] args) {
        // 格式吧
        Scanner sc = new Scanner(System.in);
        // Scanner输入 这应该就是一句标准格式吧233
        while(sc.hasNext()){
            // while(有输入)
            BigInteger n = sc.nextBigInteger(); // 格式
            BigInteger m=new BigInteger("1"); // 格式
            for(int i=2;i<=n.intValue();i++){
                // 一个挺c的for
                m = m.multiply(BigInteger.valueOf(i));
                // 函数格式
            }
            System.out.println(m.toString());
            // 转成字符串输出 不过不转也行
        }
    }
}

真·一行一注释了! 看懂了就 快乐交题 ac++; rank=9949; 然后去魔改代码 用在线编译跑 整自闭了 还是下了IDEA配了环境 啊要死 不过当时没选好题 没选水的 然后搜索关键词:hdoj 大数 Java get到hdoj上的Java大数水题 BigInteger的有 1002 // 两个大数相加 1047 // 大数累加 1715 // 求斐波那契 直接大数相加 1316 // 求区间有几个斐波那契数 大数加完for一遍 1297 // 递推+大数加法 然后 BigInteger基本函数:

代码语言:javascript
复制
BigInteger a, b;
a = BigInteger.valueOf(b); // a=b;
int c;
a = BigInteger.valueOf(c); // 类型转换
String s = "111";
a = BigInteger.valueOf(s); // 运行后a==111;
a = BigInteger("111"); // 赋值常量
a = sc.nextInteger(); // 赋值输入
a = a.add(b); // a+=b;
a = a.subtract(b); // a-=b;
a = a.multiply(b); // a*=b;
a = a.divide(b); // a/=b;
/* 函数里的值也是BigInteger 
如果是具体数值 格式:a.add(new BigInteger("1"));
是前面变量 格式:a.add(BigInteger.valueOf(i));
特殊的 0 1 10 可以用BigInteger.ZERO\ONE\TEN;
*/
if(a.compareTo(b)>0) System.out.println(a>b); 
if(a.compareTo(b)==0) System.out.println(a==b);
if(a.compareTo(b)<0) System.out.println(a<b);
remainder(); mod(); // 都是a%b
pow(); gcd(); // a^b 最大公约数
abs(); negate(); // 绝对值 相反数
max(); min();
// 定义数组格式
BigInteger array[]=new BigInteger[maxn];

然后BigDecimal

代码语言:javascript
复制
import java.math.BigDecimal; // 头文件
BigDecimal a, b;
a = sc.nextBigDecimal();
a = new BigDecimal(111);
a = new BigDecimal(b);
// 函数和BigInteger差不太多嗷 就有的语法有的小小区别
System.out.println(a.stripTrailingZeros().toPlainString());
// 这个是 输出时去除多余末尾0 好用!!

hdoj BigDecimal水题 首先BigInteger的用BigDecimal应该也能做? 1753 // 加法 2054 // 比较 1063 // a^b问题 然后说点题外话? 配完Java环境后我发现我的hexo命令不能用辽 Google后跟着教程是 在高级系统设置中的环境变量的PATH加了node_modules\.bin和nodejs的路径 就可以辣!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档