導航:首頁 > 源碼編譯 > 二的次方java演算法math

二的次方java演算法math

發布時間:2023-02-25 22:30:38

Ⅰ 如何使用java計算次方

計算2的N次方
時間限制: 1000ms內存限制: 65536kB
描述
任意給定一個正整數N(N<=100),計算2的N次方的值。
輸入
輸入只有一個正整數N。
輸出
輸出2的N次方的值。
樣例輸入
5
樣例輸出
32
參考代碼

[java] view plain 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);
}
}
根據高位低位改進的代碼:
[java] view plain print?
/*
* Title :power 2
* From :http://blog.csdn.net/binfeihan/article/details/6858655
* Time :2011-10-11 21:10PM
* Author :Eric Zhou,binfeihan
* Email :[email protected]
*/
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中怎樣怎樣算出求函數的冪次方

java中通常進行數學運算的東西都在Math類中,求函數的冪次方就是Math類中的pow方法:public static double pow(doublea,doubleb),返回第一個參數的第二個參數次冪的值。

例如求2的3次方,代碼如下:

public class test {

public static void main(String[] args) {

double a= Math.pow(2, 3);

}

}

運行結果為8

(2)二的次方java演算法math擴展閱讀:

Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。

與 StrictMath 類的某些數學方法不同,並非 Math 類所有等價函數的實現都定義為返回逐位相同的結果。此類在不需要嚴格重復的地方可以得到更好的執行。

默認情況下,很多 Math 方法僅調用 StrictMath 中的等價方法來完成它們的實現。建議代碼生成器使用特定於平台的本機庫或者微處理器指令(可用時)來提供 Math 方法更高性能的實現。這種更高性能的實現仍然必須遵守 Math 的規范。

實現規范的質量涉及到兩種屬性,即返回結果的准確性和方法的單調性。浮點 Math 方法的准確性根據 ulp(units in the last place,最後一位的進退位)來衡量。對於給定的浮點格式,特定實數值的 ulp 是包括該數值的兩個浮點值的差。

當作為一個整體而不是針對具體參數討論方法的准確性時,引入的 ulp 數用於任何參數最差情況下的誤差。

如果一個方法的誤差總是小於 0.5 ulp,那麼該方法始終返回最接近准確結果的浮點數;這種方法就是正確舍入。一個正確舍入的方法通常能得到最佳的浮點近似值;然而,對於許多浮點方法,進行正確舍入有些不切實際。

相反,對於Math 類,某些方法允許誤差在 1 或 2 ulp 的范圍內。非正式地,對於 1 ulp的誤差范圍,當准確結果是可表示的數值時,應該按照計算結果返回准確結果;否則,返回包括准確結果的兩個浮點值中的一個。對於值很大的准確結果,括弧的一端可以是無窮大。

除了個別參數的准確性之外,維護不同參數的方法之間的正確關系也很重要。

因此,大多數誤差大於 0.5 ulp 的方法都要求是半單調的:只要數學函數是非遞減的,浮點近似值就是非遞減的;同樣,只要數學函數是非遞增的,浮點近似值就是非遞增的。並非所有準確性為 1 ulp 的近似值都能自動滿足單調性要求。

https://docs.oracle.com/javase

Ⅲ 請大神,幫忙一個java數值計算2次方的源代碼 看哪裡出錯 java.lang.Math.pow(a

請按我這樣寫:
int a=3,b=2;
double c=Math.pow(a,b);
變數要先賦值、後使用,否則會產生不可預料的錯誤;另外,通常情況下,計算結果要保存起來,存放於另一個變數中,方便後續使用。

閱讀全文

與二的次方java演算法math相關的資料

熱點內容
如何確認方舟編譯器 瀏覽:664
奶粉源箱源碼什麼意思 瀏覽:178
台州程序員兼職一般去哪些網站 瀏覽:388
舊版本怎麼下載到新的安卓 瀏覽:966
flash個人網站源碼下載 瀏覽:723
javasocketbyte 瀏覽:264
素描基礎教程pdf 瀏覽:541
香港商報pdf版 瀏覽:427
安卓手機怎麼錄制吉他彈奏 瀏覽:382
ie文件夾緩存在哪裡 瀏覽:265
圍棋排名演算法 瀏覽:963
zigbee加密演算法 瀏覽:464
柏楊版資治通鑒pdf 瀏覽:395
事業編程序員下班時間 瀏覽:10
linux中命令大全 瀏覽:39
pic單片機學習網站 瀏覽:164
843除6的演算法 瀏覽:377
arduino編程視頻 瀏覽:746
pdf背景綠色 瀏覽:613
記事本dos命令 瀏覽:276