查找函数的值最接近于 C++ 中的 A 的给定列表中的数字
假设我们有一个函数 F(n) 使得 F(n) = P – (0.006*n),其中 P 也已给出。给定一个整数列表和一个数字 A。任务是查找给定列表中的数字,使其函数值最接近 A。因此,如果 P = 12且 A = 5,则列表将为 {1000, 2000} 所以输出将为 1000。因此,如果 P = 12 且 A = 5,则对于 1000,F(1000) = 12 – (0.006 * 1000) = 6 而对于 2000,F(2000) = 12 – (0.006 * 2000) = 0,因为最接近 5 的值为 6,所以取 6。
遍历列表中的每个值,并找出每个值的 F(n)。现在比较 F(n) 的每个值与 A 的绝对差以及 n 的值,对于绝对差最小的 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP