Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số trong danh sách使函数值最接近A trong C++


Cho hàm F(n) = P - 0.006*n, danh sách số nguyên và số A. Tìm số trong danh sách使F(n)最接近A。例如P=12,A=5,列表{1000,2000}→1000。

遍历列表,计算F(n),比较|F(n)-A|,取最小值对应的数。

示例

#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