컴공생의 다이어리

[c++] 2차 함수의 최대 값과 최소값 찾기 본문

Development/C & C++

[c++] 2차 함수의 최대 값과 최소값 찾기

컴공 K 2021. 2. 12. 01:00

문제

주어진 범위 (-30 ≤ 𝑥 ≤ 30, 𝑥는 정수)에서 2차 함수의 최대 값과 최소값을 찾는 프로그램을 작성하시오. 2 차 함수의 계수 a, b, c는 사용자로부터 입력된다. 이때 a는 0이 아니다.

 

 

코드

#include<iostream>
using namespace std;

double Max(double a, double b, double c){//최대값
    double y; //y=f(x)
	double max = c;//max를 c로 초기화(c는 y절편)
	for (int x = -30; x <= 30; x++){//x range : -30<=x<=30
		y = a * x * x + b * x + c;//y=f(x)
		if (max <= y)	max = y;
		else	continue;
	}
	return max;
}

double Min(double a, double b, double c){//최소값
    double y;//y=f(x)
	double min = c; //min을 c로 초기화(c는 y절편)
	for (int x = -30; x <= 30; x++){//x range : -30<=x<=30
		y = a * x * x + b * x + c;
		if (y <= min)	min = y;
		else    continue;
	}
	return min;
}

int main(){
    double a,b,c;
    cout<<"f(x)=ax^2+bx+c"<<endl;
    cout<<"-------- 입력 --------"<<endl;
    while(1){
        cout<<"a : ";
        cin>>a;
        if(a!=0) break;
        cout<<"오류 : a는 0이 아니어야 한다!"<<endl;
    }
    
    cout<<"b : ";
    cin>>b;
    cout<<"c : ";
    cin>>c;
    cout<<"----------------------"<<endl;
    cout<<"MAX : "<<Max(a,b,c)<<endl;
    cout<<"MIN : "<<Min(a,b,c)<<endl;
    return 0;
}

 

 

출력결과

728x90
반응형
Comments