Given a function F(n) = P – (0.006 * n), where P is given. Given a list of integers and a number,
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, so the answer is 1000. Input : P = 21, A = -11 List = {81234, 94124, 52141} Output : 3
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
Below is the implementation of the above approach:
// C++ program to find number from // given list for which value of the // function is closest to A #include <bits/stdc++.h> 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 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 |
# 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# 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 // PHP 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 function leastValue( $P , $A , $N , $a )
{ // Stores the final index
$ans = -1;
// Declaring a variable to store
// the minimum absolute difference
$tmp = PHP_INT_MAX;
for ( $i = 0; $i < $N ; $i ++)
{
// 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 = 2;
$P = 12;
$A = 5;
$a = array (1000, 2000);
print (leastValue( $P , $A , $N , $a ));
// This code is contributed by mits ?> |
<script> // Javascript 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 function leastValue(P, A, N, a)
{ // Stores the final index
let ans = -1;
// Declaring a variable to store
// the minimum absolute difference
let tmp = Number.MAX_VALUE;
for (let i = 0; i < N; i++)
{
// Finding F(n)
let t = (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
let N = 2, P = 12, A = 2005;
let a = [1000, 2000];
document.write(leastValue(P, A, N, a))
</script> |
Output:
1000
Time Complexity: O(N), where N represents the size of the array.
Auxiliary Space: O(1), no extra space is required, so it is a constant.