日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解)

發(fā)布時(shí)間:2025/3/21 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 1.基本函數(shù)
      • 1.1 java.math.BigInteger.valueOf(long val)
    • 2.運(yùn)算法則
      • 2.1 基本運(yùn)算
      • 2.2 compareTo(BigInteger other)方法
      • 2.3 boolean equals();
      • 2.4 BigInteger構(gòu)造函數(shù):
        • 2.4.1 BigInteger(String val);
        • 2.4.2 BigInteger(String val,int radix);
    • 3.基本常量
    • 4.基本操作
    • 5.藍(lán)橋杯試題
      • 5.1 題目描述
      • 5.2 考點(diǎn)
      • 5.3 代碼實(shí)例
      • 5.4 結(jié)果
      • 5.5 代碼講解
      • 5.6 詳細(xì)講解文件輸出

如果基本的整數(shù)和浮點(diǎn)數(shù)精度不能夠滿足需求,那么可以使用java.mate包中的兩個(gè)很有用的類:BigInteger與BigDecimal。這兩個(gè)類可以處理包含任意長度數(shù)字序列的數(shù)值。BigInteger類實(shí)現(xiàn)了任意精度的整數(shù)運(yùn)算,BigDecimal實(shí)現(xiàn)了任意精度的浮點(diǎn)數(shù)運(yùn)算。

1.基本函數(shù)

1.1 java.math.BigInteger.valueOf(long val)

將參數(shù)轉(zhuǎn)換為制定的類型,返回一個(gè)BigInteger,其值等于指定long。這種“靜態(tài)工廠方法”優(yōu)先于(long)構(gòu)造函數(shù)提供的,因?yàn)樗试S為經(jīng)常使用的BigIntegers重用。

比如int a=3;BigInteger b=BigInteger.valueOf(a);則b=3;String s="12345";BigInteger c=BigInteger.valueOf(s);則c=12345;

還可以使用BigInteger.valueOf(long val)計(jì)算n的階乘

import java.math.BigInteger; import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scan=new Scanner(System.in);while(scan.hasNext()){int n=scan.nextInt();BigInteger ans=BigInteger.valueOf(1);for(int i=1;i<=n;i++)ans=ans.multiply(BigInteger.valueOf(i));//ans.multiply或者ans.add必須賦值給ans,不能直接寫ans.multiply!只是一個(gè)值System.out.println(ans);}} }

2.運(yùn)算法則

2.1 基本運(yùn)算

這兩種數(shù)據(jù)類型不能使用人們熟悉的算術(shù)運(yùn)算符(加減乘除等)而需要使用大數(shù)值中的一些方法來代替,下面進(jìn)行詳細(xì)講解。

(1).add(); 大整數(shù)相加

(2).subtract(); 相減

(3).multiply(); 相乘

(4).divide(); 相除取整

(5).remainder(); 取余

(6).pow(); a.pow(b)=a^b

(7).gcd(); 最大公約數(shù)

(8).abs(); 絕對(duì)值

(9).negate(); 取反數(shù)

(10).mod(); a.mod(b)=a%b=a.remainder(b);

(11).max();

(12).min();

舉一個(gè)簡(jiǎn)單的小栗子,其他的請(qǐng)讀者自行練習(xí)

public static void main(String args[]) {BigInteger a=new BigInteger("23");BigInteger b=new BigInteger("34");System.out.println(a.add(b)); }

程序輸出為:57

2.2 compareTo(BigInteger other)方法

這是一個(gè)比較字符串的方法,如果這個(gè)大整數(shù)與一個(gè)大整數(shù)other相等,返回0;
如果這個(gè)大整數(shù)小于兩個(gè)大整數(shù)other,返回負(fù)數(shù);
否則返回正數(shù)。

2.3 boolean equals();

判斷兩個(gè)大整數(shù)是否相等

2.4 BigInteger構(gòu)造函數(shù):

2.4.1 BigInteger(String val);

將指定字符串轉(zhuǎn)換為十進(jìn)制表示形式;

2.4.2 BigInteger(String val,int radix);

將指定基數(shù)的 BigInteger 的字符串表示形式轉(zhuǎn)換為 BigInteger

第一個(gè)參數(shù)是一個(gè)數(shù)字字符串,第二個(gè)參數(shù)是幾進(jìn)制,栗子如下:

System.out.println(new BigInteger("110", 2)); System.out.println(new BigInteger("110", 8)); System.out.println(new BigInteger("110", 10)); System.out.println(new BigInteger("1e2c3d", 16));

結(jié)果:
6
72
110
1977405

3.基本常量

A=BigInteger.ONE 1

B=BigInteger.TEN 10

C=BigInteger.ZERO 0

4.基本操作

讀入:

用Scanner類定義對(duì)象進(jìn)行控制臺(tái)讀入,Scanner類在java.util.*包中Scanner cin=new Scanner(System.in);// 讀入 while(cin.hasNext()) {int n;BigInteger m;n=cin.nextInt(); //讀入一個(gè)int;m=cin.BigInteger();//讀入一個(gè)BigInteger;System.out.print(m.toString()); }

5.藍(lán)橋杯試題

##第九屆藍(lán)橋杯第三題:復(fù)數(shù)冪

5.1 題目描述

設(shè)i為虛數(shù)單位。對(duì)于任意正整數(shù)n,(2+3i)^n 的實(shí)部和虛部都是整數(shù)。
求(2+3i)^123456 等于多少?即(2+3i)的123456次冪,這個(gè)數(shù)字很大,要求精確表示。
答案寫成 “實(shí)部±虛部i” 的形式,實(shí)部和虛部都是整數(shù)(不能用科學(xué)計(jì)數(shù)法表示),中間任何地方都不加空格,實(shí)部為正時(shí)前面不加正號(hào)。(2+3i)^2 寫成: -5+12i,
(2+3i)^5 的寫成: 122-597i 注意:需要提交的是一個(gè)很龐大的復(fù)數(shù),不要填寫任何多余內(nèi)容。

5.2 考點(diǎn)

大數(shù)類,文件輸出

5.3 代碼實(shí)例

import java.io.*; import java.math.BigInteger;public class Main {public static void main(String[] args) throws FileNotFoundException {PrintStream ps=new PrintStream(new FileOutputStream("C:\\MyEclipse\\file\\ppp.txt"));System.setOut(ps); //文件輸出int n=123456;BigInteger a=new BigInteger("2");BigInteger b=new BigInteger("3");BigInteger a1=new BigInteger("2");BigInteger b1=new BigInteger("3");for(int i=1;i<n;i++) {BigInteger ta=a;a=a.multiply(a1).subtract(b.multiply(b1));//a=a*a1-b*b1;b=ta.multiply(b1).add(b.multiply(a1));//b=a*b1+b*a1}System.out.println(a+(b.compareTo(BigInteger.ZERO)>0?"+":"")+b+"i");}

5.4 結(jié)果

因?yàn)閙yeclipse控制臺(tái)會(huì)炸的,所以要以文件的形式輸出

一共135k的文件就對(duì)了,剩下的請(qǐng)讀者們按照代碼自己打一下

5.5 代碼講解

  • PrintStream ps=new PrintStream(new FileOutputStream(“C:\MyEclipse\file\ppp.txt”));
    黃色標(biāo)記的部分是你想要輸出到哪個(gè)文件的目錄下,
  • b.compareTo(BigInteger.ZERO)>0這句代碼的意思是:b是否大于0
  • (b.compareTo(BigInteger.ZERO)>0?"+":"")+b:如果大于零b的前面就添加一個(gè)加號(hào),否則b的前面就為空
    如果不寫這一行代碼的話,當(dāng)n的值等于2的時(shí)候,輸出結(jié)果為:-512i而不是-5+12i
    它的作用是,當(dāng)一個(gè)數(shù)是整數(shù)時(shí)要加加號(hào)
  • 5.6 詳細(xì)講解文件輸出

    方法一:

    這兩行代碼方可解決
    PrintStream ps=new PrintStream(new FileOutputStream(“C:\MyEclipse\file\wlllrk.txt”));
    System.setOut(ps); //文件輸出

    方法二:
    1.在你想要運(yùn)行的程序上右鍵–> Run As --> Run Configurations

    2.選擇Common窗口,設(shè)置文件保存路徑,以及是否以追加方式保存console輸出到文件。

    總結(jié)

    以上是生活随笔為你收集整理的Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成年人小视频在线观看 | 日韩福利视频在线观看 | 波多野结衣国产在线 | 九九热这里有精品视频 | 少妇日韩| 欧美成人中文字幕 | 欧美一区二区二区 | 黄色污污网站在线观看 | 一级片av| 中文字幕人乱码中文字 | 九热精品视频 | 亚洲一区二区精品在线观看 | 网站久久久 | 青青导航 | 日韩毛片在线免费观看 | 级毛片内射视频 | 亚洲中文字幕视频一区 | www.黄色一片 | 国产一区二区欧美日韩 | 自拍偷拍第3页 | 在线观看日批视频 | 久久国产成人精品 | 成人久久毛片 | 骚虎视频在线观看 | 毛片aaaa| 国产一级视频在线观看 | 久久亚洲精精品中文字幕早川悠里 | 无码精品人妻一区二区 | 女人被男人操 | 免费成人国产 | 欧美日韩高清不卡 | 91精产国品一二三区在线观看 | 亚洲爱爱视频 | 四季av中文字幕一区 | 天天射天天爽 | 曰韩av| 最新天堂在线视频 | 内射一区二区三区 | 中文字幕一区二区三三 | 超碰老司机 | 亚洲av无码一区二区三区观看 | 国产真实乱 | 暗呦丨小u女国产精品 | 日韩经典一区二区 | 麻豆久久久久久久久久 | 欧美高清x | 青青草色视频 | 草草影院国产 | 欧美激情精品久久 | 老妇女性较大毛片 | 深夜福利网站 | 69色堂| 九九久久精品 | 日韩三级不卡 | 潘甜甜在线 | av免费成人 | 国产调教在线观看 | 国产又粗又长又大视频 | 国产黄在线免费观看 | 久久久视频在线 | 成人午夜视频精品一区 | 诱惑av| 玖玖热视频 | 国产精品88av | 国产成人精品一区二区在线观看 | 久久综合av | 精国产人伦一区二区三区 | 日韩一区欧美二区 | 一区二区三区亚洲视频 | 黄色最新网址 | 国产av一区二区三区精品 | 婷婷毛片 | 波多野结衣久久 | 亚洲国产无码久久 | 久插网 | 久久久久久久久99 | 一级片播放 | 久久免费网 | 清冷学长被爆c躁到高潮失禁 | 亚洲av人人澡人人爽人人夜夜 | 怡春院一区二区 | 国产精选一区 | 天堂中文在线资 | 女同二区 | 天堂一区二区三区四区 | 久久久不卡国产精品一区二区 | 又欲又污又肉又黄短文 | 免费福利视频网站 | 久久黄色av | 国产乱人伦精品一区二区 | 久久爱一区 | 久久国产色av | 肉丝袜脚交视频一区二区 | 饥渴少妇勾引水电工av | 国产亚洲欧美精品久久久久久 | 夜夜高潮夜夜爽国产伦精品 | 中文在线字幕免费观看 | 深夜福利亚洲 | 国产永久免费视频 |