求解:给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]. 下面是完整题目给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程:不允许使用除法
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 03:25:58
求解:给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]. 下面是完整题目给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程:不允许使用除法
求解:给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]. 下面是完整题目
给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程:
不允许使用除法;
要求O(1)空间复杂度和O(n)时间复杂度;
除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、对空间和全局静态变量等);
请用程序实现并简单描述.
求解:给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i]. 下面是完整题目给定一个数组a[N],我们希望构造数组b[N],其中b[i]=a[0]*a[1]*...*a[N-1]/a[i].在构造过程:不允许使用除法
int main(){
\x09const int n = 8;
\x09int a[n] = {1,2,3,4,5,6,7,8};
\x09int b[n];
\x09b[n-1] = 1;
\x09for (int i=n-2;i>=0;i--)
\x09\x09b[i] = b[i+1]*a[i+1];
\x09
\x09int c = 1;
\x09for(int i=1;i
\x09\x09c*=a[i-1];
\x09\x09b[i] *= c;
\x09}
\x09for (int i=0;i
}
今天的笔试题。。。
void array() { const int N = 8; int a[N] = {1, 2, 3, 4, 5, 6, 7, 8}; int b[N] = {1, 1, 1, 1, 1, 1, 1, 1}; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) if (i == 0) b[i] *= a[j]; else if (i < j || i > j) b[i] *= a[j]; } cout << endl; for (int t = 0; t < N; t++) cout << "b[" << t << "] = " <<b[t] << endl;