# Find number from given list for which value of the function is closest to A

Given a function F(n) = P – (0.006 * n), where P is given. Given a list of integers and a number, . The task is to find the number from the given list for which the value of the function is closest to .

Examples:

```Input : P = 12, A = 5
List = {1000, 2000}
Output : 1
Explanation :
Given, P=12, A=5
For 1000, F(1000) is 12 - 1000×0.006 = 6
For 2000, F(2000) is 12 - 2000×0.006 = 0
As the nearest value to 5 is 6,

Input : P = 21, A = -11
List = {81234, 94124, 52141}
Output : 3
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: Iterate over each value in the given list and find F(n) for every value. Now, compare the absolute difference of every value of F(n) and A and the value of , for which the absolute difference is minimum is the answer.

Below is the implementation of the above approach:

## C++

 `// C++ program to find number from ` `// given list for which value of the ` `// function is closest to A ` `#include ` `using` `namespace` `std; ` ` `  `// Function to find number from ` `// given list for which value of the ` `// function is closest to A ` `int` `leastValue(``int` `P, ``int` `A, ``int` `N, ``int` `a[]) ` `{ ` ` `  `    ``// Stores the final index ` `    ``int` `ans = -1; ` ` `  `    ``// Declaring a variable to store ` `    ``// the minimum absolute difference ` `    ``float` `tmp = (``float``)INFINITY; ` ` `  `    ``for` `(``int` `i = 0; i < N; i++) ` `    ``{ ` ` `  `        ``// Finding F(n) ` `        ``float` `t = P - a[i] * 0.006; ` ` `  `        ``// Updating the index of the answer if ` `        ``// new absolute difference is less than tmp ` `        ``if` `(``abs``(t-A) < tmp) ` `        ``{ ` `            ``tmp = ``abs``(t - A); ` `            ``ans = i; ` `        ``} ` `    ``} ` `    ``return` `a[ans]; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `N = 2, P = 12, A = 2005; ` `    ``int` `a[] = {1000, 2000}; ` ` `  `    ``cout << leastValue(P, A, N, a) << endl; ` `} ` ` `  `// This code is contributed by ` `// sanjeev2552 `

## Java

 `// Java program to find number from ` `// given list for which value of the ` `// function is closest to A ` `import` `java.util.*; ` ` `  `class` `GFG ` `{ ` ` `  `// Function to find number from ` `// given list for which value of the ` `// function is closest to A ` `static` `int` `leastValue(``int` `P, ``int` `A,  ` `                      ``int` `N, ``int` `a[]) ` `{ ` ` `  `    ``// Stores the final index ` `    ``int` `ans = -``1``; ` ` `  `    ``// Declaring a variable to store ` `    ``// the minimum absolute difference ` `    ``float` `tmp = Float.MAX_VALUE; ` ` `  `    ``for` `(``int` `i = ``0``; i < N; i++) ` `    ``{ ` ` `  `        ``// Finding F(n) ` `        ``float` `t = (``float``) (P - a[i] * ``0.006``); ` ` `  `        ``// Updating the index of the answer if ` `        ``// new absolute difference is less than tmp ` `        ``if` `(Math.abs(t-A) < tmp) ` `        ``{ ` `            ``tmp = Math.abs(t - A); ` `            ``ans = i; ` `        ``} ` `    ``} ` `    ``return` `a[ans]; ` `} ` ` `  `// Driver code ` `public` `static` `void` `main(String[] args) ` `{ ` `    ``int` `N = ``2``, P = ``12``, A = ``2005``; ` `    ``int` `a[] = {``1000``, ``2000``}; ` ` `  `    ``System.out.println(leastValue(P, A, N, a)); ` `} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

## Python3

 `# Python program to find number from  ` `# given list for which value of the  ` `# function is closest to A ` ` `  `# Function to find number from  ` `# given list for which value of the  ` `# function is closest to A ` `def` `leastValue(P, A, N, a): ` `    ``# Stores the final index ` `    ``ans ``=` `-``1` `     `  `    ``# Declaring a variable to store ` `    ``# the minimum absolute difference ` `    ``tmp ``=` `float``(``'inf'``) ` `    ``for` `i ``in` `range``(N): ` `        ``# Finding F(n) ` `        ``t ``=` `P ``-` `a[i] ``*` `0.006` `         `  `        ``# Updating the index of the answer if ` `        ``# new absolute difference is less than tmp ` `        ``if` `abs``(t ``-` `A) < tmp: ` `            ``tmp ``=` `abs``(t ``-` `A) ` `            ``ans ``=` `i ` `             `  `    ``return` `a[ans] ` ` `  `# Driver Code ` `N, P, A ``=` `2``, ``12``, ``5` `a ``=` `[``1000``, ``2000``] ` ` `  `print``(leastValue(P, A, N, a)) `

## C#

 `// C# program to find number from ` `// given list for which value of the ` `// function is closest to A ` `using` `System; ` `     `  `class` `GFG ` `{ ` ` `  `// Function to find number from ` `// given list for which value of the ` `// function is closest to A ` `static` `int` `leastValue(``int` `P, ``int` `A,  ` `                      ``int` `N, ``int` `[]a) ` `{ ` ` `  `    ``// Stores the final index ` `    ``int` `ans = -1; ` ` `  `    ``// Declaring a variable to store ` `    ``// the minimum absolute difference ` `    ``float` `tmp = ``float``.MaxValue; ` ` `  `    ``for` `(``int` `i = 0; i < N; i++) ` `    ``{ ` ` `  `        ``// Finding F(n) ` `        ``float` `t = (``float``) (P - a[i] * 0.006); ` ` `  `        ``// Updating the index of the answer if ` `        ``// new absolute difference is less than tmp ` `        ``if` `(Math.Abs(t-A) < tmp) ` `        ``{ ` `            ``tmp = Math.Abs(t - A); ` `            ``ans = i; ` `        ``} ` `    ``} ` `    ``return` `a[ans]; ` `} ` ` `  `// Driver code ` `public` `static` `void` `Main(String[] args) ` `{ ` `    ``int` `N = 2, P = 12, A = 2005; ` `    ``int` `[]a = {1000, 2000}; ` ` `  `    ``Console.WriteLine(leastValue(P, A, N, a)); ` `} ` `} ` ` `  `// This code is contributed by Rajput-Ji `

## PHP

 ` `

Output:

```1000
```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.