#55442: c++解答


yp11451009@yphs.tp.edu.tw (711-19王敬皓)


c++

 

#include<bits/stdc++.h>
using namespace std;

int main(){

    // 第一條二次函數的係數 a1、b1、c1
    // 第二條二次函數的係數 a2、b2、c2
    int a1,b1,c1,a2,b2,c2;

    // x1、y1 表示第一條函數的變數與函數值
    // x2、y2 表示第二條函數的變數與函數值
    // n 為 x1+x2 的總和
    // ans 紀錄目前最大的答案
    // t 為目前兩函數值的總和
    int x1,y1,x2,y2,n,ans,t;

    // 輸入第一個二次函數的係數
    cin>>a1>>b1>>c1;

    // 輸入第二個二次函數的係數
    cin>>a2>>b2>>c2;

    // 輸入 x1+x2 的固定總和
    cin>>n;

    // 將最大值初始化為整數最小值
    ans=INT_MIN;

    // 枚舉第一個函數的 x1
    // x1 從 0 到 n
    for(int x1=0; x1<=n; x1++){

        // 因為 x1+x2=n,所以可以算出 x2
        x2=n-x1;

        // 計算第一個函數的值
        // y1 = a1*x1²+b1*x1+c1
        y1=a1*x1*x1+b1*x1+c1;

        // 計算第二個函數的值
        // y2 = a2*x2²+b2*x2+c2
        y2=a2*x2*x2+b2*x2+c2;

        // 計算兩個函數值的總和
        t=y1+y2;

        // 更新目前最大的總和
        ans=max(ans,t);
    }

    // 輸出最大值
    cout<<ans<<endl;

    return 0;
}