मान लीजिए कि हमारे पास एक फ़ंक्शन F(n) है, जैसे कि F(n) =P - (0.006*n), जहां P भी दिया गया है। पूर्णांकों और एक संख्या A की सूची को देखते हुए, कार्य दी गई सूची से संख्या ज्ञात करना है, जिसके लिए फलन का मान A के निकट है। इसलिए यदि P =12, और A =5, तो सूची {1000 होगी , 2000} तो आउटपुट 1000 होगा। तो यदि पी =12 और ए =5, तो 1000 के लिए, एफ (1000) =12 - (0.006 * 1000) =6 और 2000 के लिए, एफ (2000) =12 - (0.006) * 2000) =0, क्योंकि 5 का निकटतम मान 6 है, इसलिए इसे लिया जाता है।
सूची में प्रत्येक मान के माध्यम से पुनरावृति करें, और प्रत्येक मान के लिए F(n) खोजें। अब F(n) और A के प्रत्येक मान के निरपेक्ष अंतर की तुलना करें और n का मान, जिसके लिए निरपेक्ष अंतर न्यूनतम है, उत्तर होगा।
उदाहरण
#include<iostream> #include<cmath> using namespace std; int nearestValue(int P, int A, int N, int arr[]) { int ans = -1; float temp = (float)INFINITY; for (int i = 0; i < N; i++) { float term = P - arr[i] * 0.006; if (abs(term-A) < temp) { temp = abs(term - A); ans = i; } } return arr[ans]; } int main() { int P = 12, A = 5; int array[] = {1000, 2000, 1001}; int N = sizeof(array)/sizeof(array[0]); cout << "Nearest value is: " << nearestValue(P, A, N, array) << endl; }
आउटपुट
Nearest value is: 1001