/**
* 演算法思想:
* 先用快取將列加結果儲存起來,其中可能包括》=2的數字;
* 將其中不等於1或者0的,進行進製換算;
* >= 2時,進製-1;
* 等於-1是,將本位置為1,高一位+1
* */
void reve(int *arr, int len)
/* 將其中不等於1或者0的,進行進製換算;
* >= 2時,進製-1;
* 等於-1是,將本位置為1,高一位+1
*/for(i=0; i= 2)else if(ret[i] == -1)}}
/* 計算長度,從最高位開始,為0的都將len-- */
len = max+10;
for(i=max+10-1; i>=0; i--)
len--;
}/* 將結果反轉 */
reve(ret, len);
/* 判斷是否為全0 */
int flag1 = 0;
for(i=0; i}
/* 如果全部為0的話,將長度位置1 */
if(!flag1)
*returnsize = len;
return ret;
}
5078 負二進位制數相加
給出基數為 2的兩個數arr1和arr2,返回兩數相加的結果。數字以陣列形式給出 陣列由若干 0 和 1 組成,按最高有效位到最低有效位的順序排列。例如,arr 1,1,0,1 表示數字 2 3 2 2 2 0 3。陣列形式的數字也同樣不含前導零 以arr為例,這意味著要麼arr 0 要麼arr 0...
LeetCode 1018 可被5整除的二進位制字首
給定由若干 0 和 1 組成的陣列 a。我們定義 n i 從 a 0 到 a i 的第 i 個子陣列被解釋為乙個二進位制數 從最高有效位到最低有效位 返回布林值列表 answer,只有當 n i 可以被 5 整除時,答案 answer i 為 true,否則為 false。示例 1 輸入 0,1,1...
LeetCode 1018可被5整除的二進位制字首
給定由若干 0 和 1 組成的陣列 a。我們定義 n i 從 a 0 到 a i 的第 i 個子陣列被解釋為乙個二進位制數 從最高有效位到最低有效位 返回布林值列表 answer,只有當 n i 可以被 5 整除時,答案 answer i 為 true,否則為 false。示例 1 輸入 0,1,1...