- 題目一:大數相乘。
- 題目分析:兩個大數相加,考慮到資料型別不能表示大數,所以用字串直接處理兩個數。兩個數字,用一個數逐位的與另一個數相乘,將所得的乘積逐位相加(注意進位的情況)。最後得到的就是所要的數字。因為m位的數乘以n位的數,最多得到m+n的位數,所以用m+n的陣列儲存最終結果。
這個是程式碼的計算過程圖。 - 程式碼:
public String multiply(String num1, String num2) { int n1 = num1.length(); int n2 = num2.length(); StringBuilder sb = new StringBuilder(); int[] tmp = new int[n1+n2]; for(int i=n1-1;i>=0;i--){ for(int j=n2-1;j>=0;j--){ tmp[i+j+1] +=(num1.charAt(i)-'0')*(num2.charAt(j)-'0'); } } int carrybit=0;//從個位開始,carrybit是進位 for(int i=tmp.length-1;i>=0;i--){ tmp[i]+=carrybit; carrybit=tmp[i]/10; tmp[i]=tmp[i]%10; } int left=0; while(left<tmp.length-1&&tmp[left]==0) left++; for(;left<tmp.length;left++){ sb.append(tmp[left]); } return sb.toString(); }
- 題目二:大數相加
- 題目分析:利用字串進行相加減。
- 程式碼:
class Solution { public: string addBinary(string a, string b) { int len_a = a.size()-1; int len_b = b.size()-1; int carry = 0; string sum; while (len_a >= 0 || len_b >= 0){ int flag = 0; if (len_a >= 0){ flag += a[len_a] - '0'; len_a--; } else flag += 0; if (len_b >= 0){ flag += b[len_b] - '0'; len_b--; } else flag += 0; flag += carry; carry = flag/2; sum = static_cast<char>(flag%2+'0') + sum; } if (carry == 1) sum = '1' + sum; return sum; } };
(陣列)大數相乘,相加
相關文章
- C#陣列相乘C#陣列
- 大數相乘解決方案
- 矩陣相乘矩陣
- 大數相乘(浮點數)實現
- 【淺出 PHP】陣列相加和陣列合並的區別PHP陣列
- 一個關於JS解決陣列相乘問題JS陣列
- OpenMP版本矩陣相乘矩陣
- 用陣列實現大數加法陣列
- js實現從陣列中獲取相加和為指定數字的元素JS陣列
- Java大數相乘(使用BigInteger和BigDecimal)JavaDecimal
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 查詢陣列中出現次數大於陣列長度一半的數字陣列
- 漫畫:如何實現大整數相加?
- 無序陣列求第K大的數陣列
- 給出一個由[-100,100]之間整陣列成的陣列,求其相加和最大的連續子陣列 輸入 一個連續整陣列成的陣列 輸出 子陣列相加的最大值 樣例輸入 -......陣列
- HDU 4920 Matrix multiplication(矩陣相乘)矩陣
- 陣列進行奇數和偶數操作 把奇數放在陣列前面 偶數放在陣列後面陣列
- 求無序陣列總第n大的數陣列
- java大陣列劃分為若干小陣列Java陣列
- python兩個三階矩陣相乘Python矩陣
- 找出陣列中第 k 大的數字及其出現次數陣列
- 求出陣列中出現次數大於一半的數字陣列
- 將字串陣列轉換為浮點數陣列字串陣列
- 陣列排序(從小到大)陣列排序
- POJ-1503 Integer Inquiry-多個大數相加UI
- PHP字串數字相加PHP字串
- 2. 兩數相加
- C#陣列引數C#陣列
- 陣列元素的數量陣列
- 陣列中每個陣列元素出現的次數陣列
- 給出分數陣列,得到對應的名次陣列陣列
- 在COM中使用陣列引數-陣列指標 (轉)陣列指標
- 兩個陣列分別取出一個來相加,找出和最小的k個陣列
- 我倒在了美團面試演算法題:字串大數相加面試演算法字串
- 【陣列】1394. 找出陣列中的幸運數(簡單)陣列
- LeetCode-2. 兩數相加(連結串列+大數加法模擬)LeetCode
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- c# 方法引數_陣列引數C#陣列