1 条题解
-
0
自动搬运
来自洛谷,原作者为

伟大的王夫子
hanser忠实粉丝,爱好ACG、古风搬运于
2025-08-24 21:37:01,当前版本为作者最后更新于2020-01-17 15:05:58,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
先安利我的博客
这题比较简单(
虽然调试了这么久),先读入多项式,再求出的值,再套求根公式 ,即可因式分解。代码如下吐槽一下。代码有必要那么长吗?我的代码巨短#include <bits/stdc++.h> using namespace std; string a, c; double b[10], x1, x2; void work(double x) { if (x == 0) cout << "x"; else { cout << "(x"; if (x > 0) cout << "+" << x << ")"; else cout << "-" << -x << ")"; } } int main() { cin >> a; b[1] = 1;//x^2的系数为1 a.erase(0, 3); int pos = a.find('x'); if (pos == -1) b[2] = 0; else { c = a.substr(0, pos + 1); c.erase(--c.end());//忽略x if (c == "+") b[2] = 1; else if (c == "-") b[2] = -1;//特判正负1 else b[2] = atof(c.c_str());//求b的系数 } if (pos == -1) b[3] = atof(a.c_str()); else if (pos == a.size()) b[3] = 0; else c = a.substr(pos + 1), b[3] = atof(c.c_str());//求c的系数 //cout << b[1] << ' ' << b[2] << ' ' << b[3]; x2 = (-b[2] + sqrt(b[2] * b[2] - 4 * b[1] * b[3])) / b[1] / 2; x1 = (-b[2] - sqrt(b[2] * b[2] - 4 * b[1] * b[3])) / b[1] / 2;//求根 //cout << x1 << ' ' << x2; if (x1 == x2) work(-x1), cout << "^2"; else work(-x1), work(-x2); }就完事了呀
求大家点个赞再走呗!
- 1
信息
- ID
- 1386
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者