轉自:http://blog.csdn.net/shandianling/article/details/8785269
問題描述:兩個數組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 <stdio.h>
#include <stdlib.h>
void pr_arr(int *s,char len)
{
while(len--)
{
printf("%d \n",*s++);
}
}
int main()
int a[]={2,3,7,23,6,5,1,23,89,23};
int *b=(int*)malloc(sizeof(a));
b[0]=1;
int len=sizeof(a)/sizeof(*a);
int j,i;
for( i=1;i<len;i++)
b[i]=b[i-1]*a[i-1];
for(j=len-2;j>=1;j--)
b[0]*=a[j+1];
b[j]*=b[0];
b[0]*=a[1];
pr_arr(b,len);
return 0;
}
本文轉自夏雪冬日部落格園部落格,原文連結:http://www.cnblogs.com/heyonggang/p/3171558.html,如需轉載請自行聯系原作者