题目描述

设计一个二次方程计算器

输入描述

每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式。

输出描述

每个案例输出两个实数(由小到大输出,中间由空格隔开),保留两位小数;如果无解,则输出“No Solution”。

输入样例:

x^2+x=3x+4

输出样例:

-1.24 3.24

思路

求二次方程根的公式:x=−b±b2−4ac2ax = \frac{-b±\sqrt{b^2-4ac}}{2a}x=2a−b±b2−4ac​​
使用num保存出现的数,判断是二次项系数a、一次项系数b还是常数项c
sign判断是等式左边还是右边,opt判断是加法还是减法

代码

#include<bits/stdc++.h>
using namespace std;int main(){string s;cin>>s;int len = s.length();double a=0,b=0,c=0;double num=0; //num保存数int sign=1,opt=1; //等号左边sign=1,右边-1 若加opt=1,减-1for(int i=0;i<s.length();i++){if(s[i] == '='){sign = -1;opt = 1;if(num!=0){c+=sign*opt*num;num = 0;}}else if(s[i] == 'x'){if(num == 0) num = 1;if(s[i+1] == '^' && s[i+2] == '2'){a+=sign*num*opt;i+=2;num = 0;}else{b+=sign*num*opt;num = 0;}}else if(s[i] == '+'){if(num!=0)c+=sign*opt*num;opt = 1;num = 0;}else if(s[i] == '-'){if(num!=0)c+=sign*opt*num;opt = -1;num = 0;}else if(s[i]>='0' && s[i]<='9'){num = num*10 + s[i]-'0';               }if(i==s.length()-1){c+=sign*opt*num;}}double d = b*b-4*a*c;if(d < 0){printf("No Solution");}else if(d == 0){printf("%.2f",-b/(2*a));}else{double d1=(-b-sqrt(d))/(2*a);double d2=(-b+sqrt(d))/(2*a);if(d1<d2){printf("%.2f %.2f",d1,d2);}else{printf("%.2f %.2f",d2,d1);}}return 0;
}

【c/c++】二次方程计算器相关推荐

  1. 二次方程计算器-字符串处理

    来源:牛客网->在线测评->计算机历年考研复试上机题 参考:https://blog.csdn.net/qq_30339595/article/details/79398506 题目描述 ...

  2. 九度OJ 1103:二次方程计算器 (解方程)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2804 解决:633 题目描述: 设计一个二次方程计算器 输入: 每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式. 输 ...

  3. 题目1103:二次方程计算器

    java实现: import java.util.Scanner; import java.io.IOException; import java.io.FileReader; import java ...

  4. 【小白练习】一元二次方程计算器

    基于math函数库制作(实际上不使用函数库也不影响实现) import math# 赋值区 a= b= c=# 计算区 delta = b ** 2 - 4 * a * c (-b + math.sq ...

  5. 牛客-计算机考研复试上机题-二次方程计算器

    这道题其实考察的是对字符串的处理. 显然我们要将方程化为ax2+bx+c=0的形式,因此可以找出式子中所有x2.x的系数以及c.但是题目的输入是一个完整的字符串,如果暴力遍历的话会很麻烦,于是就想到把 ...

  6. 2011年上海交通大学计算机研究生机试真题

    http://ac.jobdu.com/problem.php?pid=1103 二次方程计算器 #include<iostream> #include<cstdio> #in ...

  7. 计算机考研 机试书籍及相关的资料

    1.算法笔记(2016.07) 2.算法笔记上机训练实战指南(2016.07) 3.计算机考研--机试指南(第2版)-2019.11 <计算机考研-机试指南>- 1经典入门 https:/ ...

  8. input文本框输入与输出(简单举例)

    以一元二次方程计算器简单举例 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

  9. matlab的程序设计实验报告答案,实验二 MATLAB程序设计(含实验报告).doc

    实验二 MATLAB程序设计(含实验报告) 实验二 MATLAB程序设计 实验目的 1.掌握利用if语句实现选择结构的方法. 2.掌握利用switch语句实现多分支选择结构的方法. 3.掌握利用for ...

  10. 211大学计算机复试不机试,复试机试之上海交通大学计算机研究生机试真题.doc...

    复试机试之上海交通大学计算机研究生机试真题 (你自己回去改格式啊,这个有多重繁杂字体,你自己改好看点~~还有知识05年到11年的)复试机试之2011年上海交通大学计算机研究生机试真题 (2012-02 ...

最新文章

  1. 管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?
  2. php数组指针什么用,php数组指针用法详解
  3. Linux下部署开源版“禅道”项目管理系统
  4. async 和 await 的进阶
  5. leetcode1075. 项目员工 I(SQL)
  6. beast php,windows php-beast 安装
  7. AIX系统root用户密码忘记
  8. 真心话大冒险C++版本
  9. 【渝粤题库】 广东开放大学 劳动和社会保障法 形成性考核
  10. 7-28 搜索树判断(25 分)
  11. WinForm主窗口框架的设计
  12. 【系列二之图像处理系列】波形处理(3)
  13. win7下linux 双系统安装教程,【系统安装】双系统——Win7下安装linux系统详细步骤...
  14. 李佳琦如果直播卖保险,你敢不敢买?
  15. 客户旅行地图教程 - 带15个示例
  16. MySQL 学习篇(四)数据库结构设计目的、基本字段类型介绍和实战内容
  17. Python 生成随机的六位数
  18. 登录授权方案:JSON Web Tokens (JWT)
  19. php 情人节语句,告辞情话最暖心短句向男生 情人节表明语录
  20. mysql 姓刘或姓李_MYSQL数据库查询

热门文章

  1. 高光反差情况下出现紫边的成因分析
  2. 初学JAVA项目(11、Ada银行-3)
  3. 开口式霍尔电流传感器助力直流配电改造
  4. 大鱼吃小鱼java源代码_大鱼吃小鱼Java课程设计
  5. 查看Win10序列号
  6. Dynamic Programming 什么意思
  7. Elasticsearch08:es-ik添加自定义词库、热更新词库
  8. .wim .GHO 类型的镜像文件如何恢复系统
  9. Pytorch:训练中断再恢复时的注意事项
  10. 1分钟让你的App 适配 锤子OneStep