九度OJ 1103:二次方程计算器 (解方程)
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:2804
解决:633
- 题目描述:
-
设计一个二次方程计算器
- 输入:
-
每个案例是关于x的一个二次方程表达式,为了简单,每个系数都是整数形式。
- 输出:
-
每个案例输出两个实数(由小到大输出,中间由空格隔开),保留两位小数;如果无解,则输出“No Solution”。
- 样例输入:
-
x^2+x=3x+4
- 样例输出:
-
-1.24 3.24
思路:
解方程的题,没有什么复杂的思路,主要是正确的读入方程系数,然后根据各种不同情况求解。
代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h> int main(void)
{
int n, i;
int a, b, c;
int flag, side, num;
char s[100]; while (scanf("%s", s) != EOF)
{
n = strlen(s);
i=0;
flag = 1;
side = 1;
num = 0;
a = b = c = 0;
while (i<n)
{
if (s[i] == '=')
{
side *= -1;
i++;
continue;
}
flag = 1;
if (s[i] == '+' || s[i] == '-')
{
if (s[i] == '-')
flag = -1;
i++;
}
num = 1;
if (isdigit(s[i]))
{
num = atoi(s+i);
while (isdigit(s[i]))
i++;
}
if (s[i] == 'x')
{
if (n-i>=3 && strncmp(s+i, "x^2", 3) == 0)
{
a += num*flag*side;
i += 3;
}
else
{
b += num*flag*side;
i += 1;
}
}
else
{
c += num*flag*side;
i++;
}
}
//printf("%dx^2+(%d)x+(%d)=0\n", a, b, c);
int delta = b*b-4*a*c;
if (delta < 0)
printf("No Solution\n");
else
{
double res1 = (-b-sqrt((double)delta))/2/a;
double res2 = (-b+sqrt((double)delta))/2/a;
printf("%.2lf %.2lf\n", res1, res2);
}
} return 0;
}
/**************************************************************
Problem: 1103
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:928 kb
****************************************************************/
九度OJ 1103:二次方程计算器 (解方程)的更多相关文章
- 九度OJ 1019 简单计算器 -- 2006年浙江大学计算机及软件工程研究生机试真题
题目地址:http://ac.jobdu.com/problem.php?pid=1019 题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 输入: ...
- 九度oj题目&吉大考研11年机试题全解
九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码). http://ac.jobdu.com/problem.php?pid=11 ...
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...
- 九度OJ 1371 最小的K个数 -- 堆排序
题目地址:http://ac.jobdu.com/problem.php?pid=1371 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4 ...
随机推荐
- 关于 ajax 动态返回数据 css 以及 js 失效问题(动态引入JS)
ajax 毕竟是异步的 所以动态加载出来的数据 难免遇到 css 或者 js 失效的问题,所以要动态加载 css ji等文件了 1.公共方法 load //动态加载 js /css function ...
- 转 python语法学习面向对象之继承
传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始 ...
- poj 2253(kruskal)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 34968 Accepted: 11235 Descrip ...
- WEB学习-兼容问题
css选择器 儿子选择器 (IE7开始兼容,IE6不兼容.) div>p{ color:red; } div的儿子p.和div的后代p的截然不同. 能够选择: <div> <p ...
- AC日记——[CQOI2014]危桥 洛谷 P3163
题目描述 Alice和Bob居住在一个由N座岛屿组成的国家,岛屿被编号为0到N-1.某些岛屿之间有桥相连,桥上的道路是双向的,但一次只能供一人通行.其中一些桥由于年久失修成为危桥,最多只能通行两次.A ...
- AC日记——传纸条 洛谷 P1006
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...
- robot upstart 问题
1.启动后在记录文件发现左轮节点未启动: 因为左边的类未实例化,不会去订阅消息然后初始化 2.两个节点均可以启动后,发现启动后又死掉 因为在程序里有getenv(“HOME”)然后付给string,g ...
- Leetcode总结之Union Find
package UnionFind; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; p ...
- echarts判断点击参数类型,series为有效,markPoint 无效
https://www.w3cschool.cn/echarts_tutorial/echarts_tutorial-7o3u28yh.html 可以设置如果点击的是markPoint,直接返回
- jenkins执行单元测试,会产生大量临时文件,要及时删除,不然会把inode耗尽
jenkins的build命令:clean test -U findbugs:findbugs pmd:pmd sonar:sonar -Djava.io.tmpdir=/tmp/ -Dsonar.p ...