超過long的大小的時候要用到?
創(chuàng)新互聯(lián)建站專注于土默特左旗網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供土默特左旗營銷型網(wǎng)站建設,土默特左旗網(wǎng)站制作、土默特左旗網(wǎng)頁設計、土默特左旗網(wǎng)站官網(wǎng)定制、成都微信小程序服務,打造土默特左旗網(wǎng)絡公司原創(chuàng)品牌,更為您提供土默特左旗網(wǎng)站排名全網(wǎng)營銷落地服務。
java.math.BigInteger; 這個類
這個類本身并不是數(shù)學計算,而是字符拼接模擬數(shù)學計算的顯示效果。
計算的結(jié)果可以以字符串的形式輸出。
代碼部分:(main方法中)
BigInteger?bi?=new?BigInteger("7894561230");
for(int?i=0;i5;i++){?//5次方?理論上可以100次?但是會計算N久
bi?=?bi.multiply(bi);//multiply?表示乘法?add?+?,sub?-,?div?是除
}
System.out.println(bi);?//輸出到屏幕看下結(jié)果
計算2的N次方
時間限制: 1000ms內(nèi)存限制: 65536kB
描述
任意給定一個正整數(shù)N(N=100),計算2的N次方的值。
輸入
輸入只有一個正整數(shù)N。
輸出
輸出2的N次方的值。
樣例輸入
5
樣例輸出
32
參考代碼
[java] view plain copy print?
import java.util.*;
public class Main {
public final static int SIZE = 30;
public static void main(String[] args) throws Exception {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int res[] = new int[SIZE + 1];
int i;
for(i = 0;i SIZE;++ i){
res[i] = 0;
}
res[0] = 1;
while(n 0){
for(i = 0;i SIZE;++ i){
res[i] *= 2;
}
for(i = 0;i SIZE;++ i){
if(res[i] 9){
res[i + 1] += res[i] / 10;
res[i] %= 10;
}
}
n --;
}
boolean bl = false;
StringBuffer bf = new StringBuffer();
for(i = SIZE;i = 0;-- i){
if(res[i] != 0 || bl){
bf.append(res[i]);
bl = true;
}
}
System.out.println(bf);
}
}
根據(jù)高位低位改進的代碼:
[java] view plain copy print?
/*
* Title :power 2
* From :
* Time :2011-10-11 21:10PM
* Author :Eric Zhou,binfeihan
* Email :binfeihan@126.com
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader cin = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(cin.readLine().trim());
System.out.println(my_power_2(n));
//System.out.println(Long.MAX_VALUE);
//System.out.println(Long.MIN_VALUE);
}
public static StringBuffer my_power_2(int N){
StringBuffer v = new StringBuffer("");
long num[] = new long[2];
num[1] = 1;
if(N 62){
num[0] = 1;
num[0] = num[0](N - 62);
num[1] = num[1]62;
String s = String.valueOf(num[1]);
int size = 30,i = 0,j = 0;
long n[] = new long[size + 1];
//System.out.println(num[0]+" "+s);
for(i = s.length() - 1;i = 0;-- i){
n[j ++] = (long) (num[0] * (s.charAt(i) - '0'));
//System.out.println(n[j - 1]);
}
for(i = 0;i size;++ i){
while(n[i] 9){
n[i + 1] += n[i] / 10;
n[i] %= 10;
}
}
boolean bl = false;
for(i = size;i = 0;-- i){
if(n[i] != 0 || bl){
v.append(n[i]);
bl = true;
}
}
}else{
num[1] = num[1] N;
v.append(String.valueOf(num[1]));
}
return v;
}
}
java中通常進行數(shù)學運算的東西都在Math類中,求函數(shù)的冪次方就是Math類中的pow方法:public static double pow(double?a,?double?b),?返回第一個參數(shù)的第二個參數(shù)次冪的值。
例如求2的3次方,代碼如下:
public class test {
public static void main(String[] args) {
double a= Math.pow(2, 3);
}
}
運行結(jié)果為8
擴展資料:
Math 類包含用于執(zhí)行基本數(shù)學運算的方法,如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。
與 StrictMath 類的某些數(shù)學方法不同,并非 Math 類所有等價函數(shù)的實現(xiàn)都定義為返回逐位相同的結(jié)果。此類在不需要嚴格重復的地方可以得到更好的執(zhí)行。
默認情況下,很多 Math 方法僅調(diào)用 StrictMath 中的等價方法來完成它們的實現(xiàn)。建議代碼生成器使用特定于平臺的本機庫或者微處理器指令(可用時)來提供 Math 方法更高性能的實現(xiàn)。這種更高性能的實現(xiàn)仍然必須遵守 Math 的規(guī)范。
實現(xiàn)規(guī)范的質(zhì)量涉及到兩種屬性,即返回結(jié)果的準確性和方法的單調(diào)性。浮點 Math 方法的準確性根據(jù) ulp(units in the last place,最后一位的進退位)來衡量。對于給定的浮點格式,特定實數(shù)值的 ulp 是包括該數(shù)值的兩個浮點值的差。
當作為一個整體而不是針對具體參數(shù)討論方法的準確性時,引入的 ulp 數(shù)用于任何參數(shù)最差情況下的誤差。
如果一個方法的誤差總是小于 0.5 ulp,那么該方法始終返回最接近準確結(jié)果的浮點數(shù);這種方法就是正確舍入。一個正確舍入的方法通常能得到最佳的浮點近似值;然而,對于許多浮點方法,進行正確舍入有些不切實際。
相反,對于Math 類,某些方法允許誤差在 1 或 2 ulp 的范圍內(nèi)。非正式地,對于 1 ulp的誤差范圍,當準確結(jié)果是可表示的數(shù)值時,應該按照計算結(jié)果返回準確結(jié)果;否則,返回包括準確結(jié)果的兩個浮點值中的一個。對于值很大的準確結(jié)果,括號的一端可以是無窮大。
除了個別參數(shù)的準確性之外,維護不同參數(shù)的方法之間的正確關(guān)系也很重要。
因此,大多數(shù)誤差大于 0.5 ulp 的方法都要求是半單調(diào)的:只要數(shù)學函數(shù)是非遞減的,浮點近似值就是非遞減的;同樣,只要數(shù)學函數(shù)是非遞增的,浮點近似值就是非遞增的。并非所有準確性為 1 ulp 的近似值都能自動滿足單調(diào)性要求。
參考資料:
新聞名稱:java求次冪代碼 java冪次方
文章分享:http://aaarwkj.com/article38/hhjjpp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、品牌網(wǎng)站建設、Google、網(wǎng)站收錄、建站公司、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)