(Java) 演算法題:2的N次方
題目描述
原題連結
2的N次方
對於一個整數N(512 <= N <= 1024),計算2的N次方並在螢幕顯示十進位制結果。
輸入描述:
輸入一個整數N(512 <= N <= 1024)
輸出描述:
2的N次方的十進位制結果
輸入例子1:
512
輸出例子1:
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
思路
考察大數乘法。大數一般聯想到字串。但是字串不方便修改值,因此採用StringBuilder來表示大數。
迴圈n次進行X2操作,每次操作需要將StringBuilder中的字元依次取出X2並處理進位。
時間複雜度O(n^2)
程式碼
public class PowOf2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(pow2(n));
}
private static String pow2(int n) {
StringBuilder res = new StringBuilder( "1" );
// 重複N次
for (int i = 0; i < n; i++) {
// 進位標誌,每輪清零
int temp = 0;
// result中的字元,從前往後逐位*2
for (int j = res.length() -1; j >= 0; j--) {
// 乘法運算,需要加上進位
temp = ((res.charAt(j) - '0') <<1) + temp / 10 ;
// 替換此位結果
res.setCharAt(j, (char)(temp%10 + '0')) ;
}
// 產生進位則需新增新的數字
if (temp/10 >= 1)
res.insert(0,'1') ;
}
return res.toString();
}
}
相關文章
- hashMap 的size 為什麼 是2的 n次方倍HashMap
- C(Y,n)一元n次方的構造法
- 一個未知數的一元2n+1次方
- 為什麼 HashMap 的容量大小要設定為2的N次方?HashMap
- leetcode演算法題解(Java版)-9-N皇后問題LeetCode演算法Java
- [靈性程式設計]這想要那也想要的需求解決,2^ n次方列舉法程式設計
- 組合數學與一元n次方
- C(Y,n)的一元3,4,5次方異態
- [2]十道演算法題【Java實現】演算法Java
- 一元1次方一元2次方的通道
- 一元2次方一元3次方的通道
- 為什麼分庫分表使用2的N次方 一個位元組用兩位16進位制
- 時間複雜度為 O (n^2) 的排序演算法時間複雜度排序演算法
- 時間複雜度為 O(n^2) 的排序演算法時間複雜度排序演算法
- [Java] 藍橋杯ADV-185 演算法提高 五次方數Java演算法
- Python退火演算法在高次方程的應用Python演算法
- N皇后和N皇后2
- java演算法題Java演算法
- offer通過--11數值的整數次方-2
- 計算2的N次冪n 可輸入,n為自然數
- [20210624]find -mtime +N N -N的時間範圍問題.txt
- 一元2次方一元3次方的通道(廣西高明秋的補充)
- Java在演算法題中的輸入問題Java演算法
- 演算法:N皇后二演算法
- Java實現:排序演算法--時間複雜度為O(n² )Java排序演算法時間複雜度
- 演算法 1~n中1的次數演算法
- 編寫程式實現 f(n)=f(n-1)+f(n-2) (f(1)=1 和 f(2)=2 )函式。函式
- 2022-07-17:1、2、3...n-1、n、n、n+1、n+2... 在這個序列中,只有一個數字有重複(n)。 這
- N皇后問題
- Java入門(String的3個演算法題)Java演算法
- Java 中拼接 String 的 N 種方式Java
- Java 謎題 2:夢境Java
- 【Java】Word題庫解析2Java
- [20210625]find -mtime +N N -N時間問題補充.txt
- [20210626]find -mtime +N N -N時間問題補充.txt
- 尤拉計劃735:2n^2的因數
- 1~7的謎題(1):n=1
- python進階學習:Python退火演算法在高次方程的應用Python演算法