0
点赞
收藏
分享

微信扫一扫

C++ 一元二次函数抛物线求区间 最大值,最小值

金刚豆 2022-04-13 阅读 54


class UnivariateQuadratic
{
private:
    int A, B, C;
    int Left, Right;
    double Max, Min;
public:
    UnivariateQuadratic(int, int, int);
    void calculateMaxMin(int, int);
    double getMax();
    double getMin();
};

#include <iostream>
#include"UnivariateQuadratic.h"
using namespace std;
UnivariateQuadratic::UnivariateQuadratic(int a, int b, int c)
{
	A = a, B = b, C = c, Max = 0, Min = 0, Left = 0; Right = 1;
}
void UnivariateQuadratic::calculateMaxMin(int l, int r)
{
	Left = l, Right = r;
	if (l > r)
	{
		Left = r;
		Right = l;
	}
	Min=Max = A * l * l + B * l + C;
	for (int x = l+1; x <= r; x++)
	{
		int y= A * x * x + B * x + C;
		if (Min > y) Min = y;
		if (Max < y) Max = y;
	}
};
double UnivariateQuadratic::getMax() 
{ 
	return Max; 
};
double UnivariateQuadratic::getMin() 
{ 
	return Min; 
};
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include"UnivariateQuadratic.h"
using namespace std;

int main()
{
    UnivariateQuadratic UQ(2,1,-3);
    UQ.calculateMaxMin(-2,2);


    cout << UQ.getMax() << endl;
    cout << UQ.getMin() << endl;
    return 0;
}

举报

相关推荐

0 条评论