zoukankan      html  css  js  c++  java
  • 北京理工大学复试上机--2004

    1、建立一个角类,在这个类中重载减号运算符,并实现求出角度的正弦值的函数。

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    class angel
    {
    public:
        double x1, x2;
        double getangel()
        {
            return (x1 - x2) / 180 * 3.1415926927;//转为角度
        }
        double getsin(void)
        {
            cout << sin(getangel()) << endl;
        }
    };
    
    int main() {
        angel a;
        while(cin >> a.x1 >> a.x2) {
            a.getangel();
            a.getsin();
        }
        return 0;
    }
    2、建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数 a,b,c 的值后打印出这个方程的解来,也比较简单。
    需要注意的是系数 a 不能为零以及方程有无解,单解还是双解的情况。
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    class anser
    {
    private:
        double a, b, c;
    public:
        anser (int x, int y, int z) {
            a = x;
            b = y;
            c = z;
        };
        void show() {
            double x1, x2;
            if(a == 0) {
                x1 = -c / b;
                x2 = -c / b;
                cout << "x1 = x2 = " << x1 << endl;
            }
            else if((b * b - 4 * a * c) < 0) {
                cout << "No solution" << endl;
            }
            else {
                x1 = (-b + sqrt(b * b - 4 * a * c)) / 2 * a;
                x2 = (-b - sqrt(b * b - 4 * a * c)) / 2 * a;
                if(x1 == -0 || x2 == -0) {
                    x1 = 0;
                    x2 = 0;
                }
                cout << "x1 = " << x1 << "  x2 = " << x2 << endl;
            }
        }
    };
    
    int main() {
        double a, b, c;
        while(cin >> a >> b >> c) {
            anser ans(a, b, c);
            ans.show();
        }
        return 0;
    }
    3、实现一个多项式的类(a+b*x+c*x^2+d*x^3+...+),要求输入该多项式的系数和x的值后打印出这个多项式的值。
    输入:
    第一行为多项式最高项次数n,接下来n+1个整数表示每项系数,最后一个整数x,n不超过10。
    输出:
    多项式代入x后的值。
    #include <iostream>
    #include <cmath>
    #include <vector>
    using namespace std;
    
    class formula
    { 
    public:
        vector<double> v;
        int n;
        double x;
        double fun(int n, int N, double x, vector<double> v) {
            if(n == 0) {
                return v[N];
            }
            else {
                return fun(n - 1, N, x, v) * x + v[N-n];
            }
        }
        void show(){
            cout << fun(n, n, x, v) << endl;
        }
    };
    
    
    
    int main() {
        int n;
        while (cin >> n) {
            vector<double> v(n + 1);
            double x;
            for(int i = 0; i <= n; i++) cin >> v[i];
            cin >> x;
            formula f;
            f.n = n;
            f.v = v;
            f.x = x;
            f.show();
        }
        return 0;
    }

    PS: 这个类我是真的搞不懂,裂开~  只能是照葫芦画瓢写一写,也不知道准不准确,希望复试不要遇到这种题。 T_T

  • 相关阅读:
    区块链中的随机数 nonce
    SaaS(软件即服务)、PaaS(平台即服务)、IaaS(基础架构即服务)、BaaS(区块链即服务)
    程序插桩简介
    侧链技术
    闪电/雷电网络
    Ubuntu16.04安装/升级openssl到1.1版本
    Ubuntu16.04升级Python3及其pip3并切换为默认版本
    Python——/usr/bin/env: ‘python(3) ’: No such file or directory
    TCP通信功能 (agent功能)
    gin框架web操作数据库
  • 原文地址:https://www.cnblogs.com/ache/p/12534927.html
Copyright © 2011-2022 走看看