编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果
筆試題目1:寫一個函數,返回一個數組中所有元素被第一個元素除的結果
很多人會想到如下:
void DivAarry(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
pArray[i] /= pArray[0];
}
}
問題1:可不可以把循環正著寫,會出現什么問題
問題2:是否檢查了除數為零的情況
對于問題1,顯然是不可以的,如果正著寫亦即:
for(int i=0;i<size;i++)
{
pArray[i] /= pArray[0];
}
這樣一來當i=0是,數組的第一個元素變成了1,以后這個除數就會一直是1,而不是原來數組的一個數,不符合要求
修改后:
void DivArray(int *pArray,int size)
{
for(int i=size-1;i>=0;i--)
{
if(pArray[0]==0)
cout<<"error"<<endl;
else
pArray[i] /=pArray[0];
?
}
}
這樣寫下來發現是可以的,但是有一個問題,當size足夠大時,效率卻出問題了,因為每次都要判斷數組第一個元素是否為零,這樣浪費時間了,可以將其放在循環外面,
結果就編成了下面的代碼:
void DivArray(int *pArray,int size)
{
if (pArray[0]==0) cout<<"error"<<endl;
else
for(int i=size-1;i>=0;i--)
{
pArray[i] /=pArray[0];
}
}
?
轉載于:https://www.cnblogs.com/sun-mile-rain/archive/2013/04/01/2993664.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ-1260 Pearls DP
- 下一篇: 《那些年啊,那些事——一个程序员的奋斗史