c++的题目,谢谢了

2025-03-09 11:44:39
推荐回答(1个)
回答1:

#include
using namespace std;

class MyPolynomial {
private:
    int Count;    //存放不为0的系数项个数
    int coefficient[100];  //存放每一项的系数
    int exponent[100];   //存放每一项的指数

public:
    MyPolynomial(int n); //构造函数
    friend void Compute(MyPolynomial& m);
};

MyPolynomial::MyPolynomial(int n) {
    if (n <= 100) { //超过了预存区域,就不能运行了。
        Count = n;
        for (int i = 0; i < n; i++) {
            cin >> coefficient[i] >> exponent[i];
        }
    }
}

void Compute(MyPolynomial& m) {
    bool IsPrint=false; //求导后是否有不为0的系数,标记
    for (int i = 0, j; i < m.Count; i++) {
        j = m.coefficient[i] * m.exponent[i];  //计算求导后每一项的系数
        if (j) {      //当系数不为0时
            IsPrint=true;    //设置标记
            cout << j << " " << m.exponent[i] - 1;  //输出求导后每一项的系数和指数
            if (i < m.Count - 1)   //如果是最后一项,则末尾不输出空格了。
                cout << " ";
        }
    }
    if(!IsPrint)  //如果求导后系数全为0,则输出0 0
        cout<<"0 0";
}

int main() {
    int n;
    MyPolynomial *m;

    cin >> n;
    if (n > 0) {
        m = new MyPolynomial(n);
        Compute(*m);
        delete m;
    }
    system("PAUSE"); //加这一行,是为了使屏幕暂停,看清输出的结果
    return 0;

}