# SHL off campus coding questions

Question: An e-commerence company is planning to give a special discount on all of it’s products to its customers for the christmas holiday. The company possesses data on it’s stock of N product type. The data for each product type represents the count of customers who have ordered the given product. If the fata k is positive then it shows that the product has been ordered y k customers and is in stock. If the data k is negative then it shows that it has been ordered by k customers but it is not available in stock.The company will fulfill it from warehouse. They are planning to offer a discount amount A for each product. The discount value will be distributed to the customers who have purchased that selected product. The discount will be distributed only if the decided amount A can be divided bu the number of orders for a particular product.

write an algorithm for sales team to find the number of products out of N for which the discount will be distributed.

Input:

The first line of the input consists of an integer – numOfProducts, represnting the number of different types of products ( N).

The second line consists of the respective product types

The last line consists of an integer -disAmount, representing the discount amount that will be distributed among the customers.

Output:

Print an integer representing the number of products out of N for which the discount will be distributed.

Examples:

Input:

7

9 -13 8 -7 -8 18 10

18

output:

2

Explanation:

Here in given array we can observe 18 is divisibleby 9 and 18 itself so output is 2.

## Algorithm to Solve

1. Take input from user total number of customers (N), array of integers representing ordered value of customers, then an integer representing discount amount say key.
2. Use a for loop to iterate through all the elements of array.
3. Use two conditions inside if block the that is
1. The number should divide key completely
2. The number should be greater than ZERO (positive number).
4. Take a result variable and initialize it to zero.
5. Each time a number satisfies step 3 conditions, increment the result by 1.
6. At the end print the result variable.

JAVA CODE

```package arrayproblems;
import java.util.*;

class Problem20 {

public static void main(String[] args) {
int N=7;
int[] array1= {9,-13,8,-7,-8,18,10};
int key=18;
int res=0;

for(int i=0;i<array1.length;i++) {

if(key%array1[i]==0 && array1[i]>0) {

res++;
}
}
System.out.println(res);

}

}
```

Watch Complete Explanation for Above code On our Channel

Similar Off Campus Coding Questions

Count Buildings Hacker Earth coding question with solution

Maximum Work Hacker Earth Problem solved

Rotate Array Elements towards Right Side

Beginner’s friendly top 5 array questions in java