【c/c++】二次方程计算器
题目描述
设计一个二次方程计算器
输入描述
每个案例是关于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++】二次方程计算器相关推荐
- 二次方程计算器-字符串处理
来源:牛客网->在线测评->计算机历年考研复试上机题 参考:https://blog.csdn.net/qq_30339595/article/details/79398506 题目描述 ...
- 九度OJ 1103:二次方程计算器 (解方程)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2804 解决:633 题目描述: 设计一个二次方程计算器 输入: 每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式. 输 ...
- 题目1103:二次方程计算器
java实现: import java.util.Scanner; import java.io.IOException; import java.io.FileReader; import java ...
- 【小白练习】一元二次方程计算器
基于math函数库制作(实际上不使用函数库也不影响实现) import math# 赋值区 a= b= c=# 计算区 delta = b ** 2 - 4 * a * c (-b + math.sq ...
- 牛客-计算机考研复试上机题-二次方程计算器
这道题其实考察的是对字符串的处理. 显然我们要将方程化为ax2+bx+c=0的形式,因此可以找出式子中所有x2.x的系数以及c.但是题目的输入是一个完整的字符串,如果暴力遍历的话会很麻烦,于是就想到把 ...
- 2011年上海交通大学计算机研究生机试真题
http://ac.jobdu.com/problem.php?pid=1103 二次方程计算器 #include<iostream> #include<cstdio> #in ...
- 计算机考研 机试书籍及相关的资料
1.算法笔记(2016.07) 2.算法笔记上机训练实战指南(2016.07) 3.计算机考研--机试指南(第2版)-2019.11 <计算机考研-机试指南>- 1经典入门 https:/ ...
- input文本框输入与输出(简单举例)
以一元二次方程计算器简单举例 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...
- matlab的程序设计实验报告答案,实验二 MATLAB程序设计(含实验报告).doc
实验二 MATLAB程序设计(含实验报告) 实验二 MATLAB程序设计 实验目的 1.掌握利用if语句实现选择结构的方法. 2.掌握利用switch语句实现多分支选择结构的方法. 3.掌握利用for ...
- 211大学计算机复试不机试,复试机试之上海交通大学计算机研究生机试真题.doc...
复试机试之上海交通大学计算机研究生机试真题 (你自己回去改格式啊,这个有多重繁杂字体,你自己改好看点~~还有知识05年到11年的)复试机试之2011年上海交通大学计算机研究生机试真题 (2012-02 ...
最新文章
- 管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?
- php数组指针什么用,php数组指针用法详解
- Linux下部署开源版“禅道”项目管理系统
- async 和 await 的进阶
- leetcode1075. 项目员工 I(SQL)
- beast php,windows php-beast 安装
- AIX系统root用户密码忘记
- 真心话大冒险C++版本
- 【渝粤题库】 广东开放大学 劳动和社会保障法 形成性考核
- 7-28 搜索树判断(25 分)
- WinForm主窗口框架的设计
- 【系列二之图像处理系列】波形处理(3)
- win7下linux 双系统安装教程,【系统安装】双系统——Win7下安装linux系统详细步骤...
- 李佳琦如果直播卖保险,你敢不敢买?
- 客户旅行地图教程 - 带15个示例
- MySQL 学习篇(四)数据库结构设计目的、基本字段类型介绍和实战内容
- Python 生成随机的六位数
- 登录授权方案:JSON Web Tokens (JWT)
- php 情人节语句,告辞情话最暖心短句向男生 情人节表明语录
- mysql 姓刘或姓李_MYSQL数据库查询