# Solve it!!! Intresting One!!!

Discussion in 'C' started by asadullah.ansari, Apr 29, 2008.

Joined:
Jan 9, 2008
Messages:
356
14
Trophy Points:
0
Occupation:
Developer
Location:
NOIDA
Can you Anyone solve this problem...

There is given one array lets say Arr[n]( n is the size of array). You have to store multiplication of all elements of Arr[n] except element Arr into a array OutVar. Example:
Code:
```    Suppose given am array as
Arr={1,2,3,4,5}
Then

OutVar=Arr*Arr*Arr*Arr
OutVar=Arr*Arr*Arr*Arr
OutVar=Arr*Arr*Arr*Arr
OutVar=Arr*Arr*Arr*Arr
OutVar=Arr*Arr*Arr*Arr*
```
Condition Apply: 1. Time Complexity should be O(n) (No matter for space better If you
minimize space also)
2. Division(/) or Modular division(%) are not allowed.

Last edited: Apr 30, 2008
2. ### blabla2028New Member

Joined:
Apr 29, 2008
Messages:
5
0
Trophy Points:
0
The code would be something like this I suppose:

Code:
```int main()
{
int arr[n],OutVar[n2];
int counter1,counter2,result;
result=0;

for(counter1=0; counter1<n2; counter1++)
{
for(counter2=0; counter2<n; counter2++)
{
if counter2=counter1 continue;
result=result*arr[counter2];
}
OutVar[counter1]=result;
result=1;
}

}
```

3. ### blabla2028New Member

Joined:
Apr 29, 2008
Messages:
5
0
Trophy Points:
0
The code would be something like this I suppose:

Code:
```int main()
{
int arr[n],OutVar[n2];
int counter1,counter2,result;
result=1;

for(counter1=0; counter1<n2; counter1++)
{
for(counter2=0; counter2<n; counter2++)
{
if counter2=counter1 continue;
result=result*arr[counter2];
}
OutVar[counter1]=result;
result=1;
}

}
```

4. ### blabla2028New Member

Joined:
Apr 29, 2008
Messages:
5
0
Trophy Points:
0
the result int avariable must be set to 1 since the beginning

5. ### blabla2028New Member

Joined:
Apr 29, 2008
Messages:
5
0
Trophy Points:
0
also supposing the two array sizes are equal. n=n2

Joined:
Jan 9, 2008
Messages:
356
14
Trophy Points:
0
Occupation:
Developer
Location:
NOIDA

7. ### subha040680New Member

Joined:
Apr 30, 2008
Messages:
3
0
Trophy Points:
0
Can this be the solution?

Code:
```void main()
{
for(int cnt = 0; cnt < 5; ++cnt)
{
OutVar[cnt] = Arr[(i+1)%5] *Arr[(i+2)%5]*Arr[(i+3)%5]*Arr[(i+4)%5];
}
}```

8. ### subha040680New Member

Joined:
Apr 30, 2008
Messages:
3
0
Trophy Points:
0
Soorry, 'i' is wrong it will be 'cnt' everywhere in the previous one.

Joined:
Jul 12, 2004
Messages:
15,345
382
Trophy Points:
83
When using code block try indenting your code so that its easy to read for others.

Joined:
Jan 9, 2008
Messages:
356