• 【codeforces 20B】Equation


    【题目链接】:http://codeforces.com/contest/20/problem/B

    【题意】

    给你一个方程,让你输出这个方程的解的情况.

    【题解】

    a==0,b==0,c==0时,为恒等式,无穷解;
    a==0,b==0,c!=0时,为恒不等式,无解;
    a==0,b!=0,为一次方程,有唯一解-c/b
    a!=0的时候,按照正常的二次方程求解;
    x1和x2的关系可能会因为a的正负改变的,不能直接输出,要判断一下大小再控制输出;

    【Number Of WA

    4

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define ms(x,y) memset(x,y,sizeof x)
    #define Open() freopen("D:\rush.txt","r",stdin)
    #define Close() ios::sync_with_stdio(0),cin.tie(0)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    const int N = 1e6+100;
    const int MOD = 1e9+7;
    
    LL a,b,c;
    double temp;
    
    int main(){
        //Open();
        Close();
        cin >> a >> b >> c;
        if (a==0 && b==0 && c==0){
            cout <<-1<<endl;
            return 0;
        }
        if (a==0 && b==0 && c!=0){
            cout <<0<<endl;
            return 0;
        }
        if (a==0 && b!=0){
            cout <<1<<endl;
            double ans = (-1.0)*c/b;
            cout << fixed << setprecision(10) << ans << endl;
            return 0;
        }
        temp = b*b-4*a*c;
        if (temp<0){
            cout <<0<<endl;
        }else if (temp==0){
            cout <<1<<endl;
            double ans = -1.0*b/(2*a);
            cout << fixed << setprecision(10) << ans << endl;
        }else if (temp>0){
            cout <<2<<endl;
            temp = sqrt(temp);
            double ans1 = (-1.0*b-temp)/(1.0*2*a),ans2 = (-1.0*b+temp)/(1.0*2*a);
            if (ans1>ans2) swap(ans1,ans2);
            cout << fixed << setprecision(10) << ans1 <<endl<<ans2<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    跟光磊学Python开发-面向对象入门
    插件调用下推操作
    K3Wise老单获取单据行数
    git 添加和删除 global 的 remote.origin.url
    CSV转Excel格式
    java 下载文件
    windows下安装redis并设置自启动
    linxu jdk安装
    Linux安装部署Redis
    CentOS上安装MySQL(使用国内源)
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626274.html
Copyright © 2020-2023  润新知