兩個陣列a[n],b[n],其中a[n]的各個元素值已知,現給b[i]賦值,b[i] = a[0]*a[1]*a[2]...*a[n-1]/a[i];
要求:1.不准用除法運算
2.除了迴圈計數值,a[n],b[n]外,不准再用其他任何變數(包括區域性變數,全域性變數等)
3.滿足時間複雜度o(n),空間複雜度o(1)
#include
using namespace std;
#define n 4
/**總的思路如下:
* b[i] = (a[0]*a[1]*..a [i-1]) *(a[i+1]*...*a[n])
* 所以在不借助其他陣列或者變數的情況下,先從左至右讓b[i]存前半部分,在
* 從右至左讓b[i]存後半部分。
*/int main(void)
;int b[4] =;
/*第一步:先從左到右進行遍歷,即將b[i]的前半部分先計算出來
b[i]=a[0]*a[1]*a[2]*a[3]*a[i-1]=b[i-1]*a[i-1]
*/for(int i=1; i
/*第二步:先從右到左進行遍歷,即將b[i]的後半部分算出來
*/for(i=n-2; i>0; i--)
b[0]*=a[1];//計算b[0]的值。
for(i=0; i<4; i++)
return 0;
}
求解一道arduino問題
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
一道騰訊前端試題
題目 有一組數字,從1到n 假設n 10000 從中任意刪除了3個數,順序也被打亂,剩餘數字放在乙個n 3的陣列裡,請找出丟失的數字,要求演算法比較快。方法一,我寫的程式 var ary 1,5,7,6,4,8,10 var n ary.length 3 var newary document.wr...
一道演算法題的求解
將1 9這9個數字組合成3個三位數,要求第2個三位數是第乙個三位數的2倍,第3個三位數是第乙個三位數的3倍。找出所有的可能方案。如果直接求出所有符合要求的排列組合的數那效率會特別低,所以最基本的思路就是先用便捷的方法得到滿足一部分要求的數,再篩選。組合的三位數的範圍是111 999 重複的 含0的最...