陣列元素的值為其他所有元素的累積

2021-06-18 10:43:12 字數 1297 閱讀 7796

題目:乙個長度為n的陣列a[0],a[1],...,a[n-1]。現在更新陣列的各個元素,即a[0]變為a[1]到a[n-1]的積,a[1]變為a[0]和a[2]到a[n-1]的積,...,a[n-1]為a[0]到a[n-2]的積(就是除掉當前元素,其他所有元素的積)。

要求:具有線性複雜度,且不能使用除法運算子。

#include 

"stdafx.h

"#include

using

namespace

std;

void

printarray(

int*a,

intlength)

cout

<<

endl;}//

陣列元素的值為其他所有元素的累積

void

updatearraynumber(

int*a,

intlength)

int*accumulate =

newint

[length];

accumulate[

0] = 1;

for(

inti =

1; i < length; i++

)

inttmp = 1;

for(

inti = length -

2; i >=

0; i--

)

for(

inti =

0; i < length; i++

)

delete accumulate;

}int

_tmain(

intargc, _tchar*

argv)

;

intlength =

sizeof

(a)/

sizeof

(a[0

]); cout

<<

"before: ";

printarray(a, length);

updatearraynumber(a, length);

cout

<<

"after: ";

printarray(a, length);

cout

<<

endl;

return0;

}

執行介面如下:

刪除線性表中所有值為x的陣列元素

刪除線性表中所有值為x的陣列元素。比如一串數字值為 1,2,3,2,4,5,2,6,2 刪除值為2的元素 這個問題並不難但煩人的是要進行資料的覆蓋!那麼如果對從前往後的每個值為x的數進行覆蓋 事情就會變成這樣 1 2 3 2 4 5 2 6 2 1 3 2 4 5 2 6 2 1 3 4 5 2 6...

刪除單鏈表中所有值為x的元素

刪除所有值為x的單鏈表中的元素 首先,我們先考慮第一種情況,就是說值刪除第乙個值為x的元素,這個比較簡單,只需要挨個比較x和鍊錶節點的值,找到值相同的節點的前乙個就可以刪除這個節點了。然後我們可以考慮兩種辦法第一種就是遞迴的去刪除,這個比較簡單,只需要刪除第乙個值和我們要刪除的值一樣的節點,然後把下...

和為定值的兩個陣列元素

在陣列中找到和為定值的兩個數,返回陣列下標。這個題目就是乙個排序的問題,但是不能改變陣列,用快排的方式儲存陣列的索引值即可,上 include include include include using namespace std void quicksort index int arr,int i...