2021.07.26 P1022 计算器的改良(字符串)
2021.07.26 P1022 计算器的改良(字符串)
改进:
如果是我出题,我一定把未知数设为ab、buh、bluesky之类的长度不只是1的字符串!
题意:
一个一元一次方程,求解。
分析:
1.处理未知数之前的系数,别忘了-x||+x||=x的系数为-1||1||1;
2.处理已知数,参考快读
3.处理结果
代码如下:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
string s;
char letter;
int num,xi,sum;
inline int read(){
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9'){
		if(ch=='-')w=-1;
		ch=getchar();
	}
	while(ch<='9'&&ch>='0'){
		s=s*10+ch-'0';
		ch=getchar();
	}
	return s*w;
}
int main(){
	cin>>s;
	int fu=1,flag=0;
	for(int i=0;i<s.length();i++){
		//cout<<"fu "<<fu<<" num "<<num<<" sum "<<sum<<" xi "<<xi<<" falg "<<flag<<endl;//
		if(s[i]=='='){
			if(!flag)sum+=fu*num;
			else sum-=fu*num;
			flag=fu=1,num=0;
		}else if(s[i]=='+'){
			if(!flag)sum+=fu*num;
			else sum-=fu*num;
			fu=1,num=0;
		}else if(s[i]=='-'){
			if(!flag)sum+=fu*num;
			else sum-=fu*num;
			fu=-1,num=0;
		}else if(s[i]>='a'&&s[i]<='z'){
			letter=s[i];
			if(s[i-1]=='-'||s[i-1]=='+'||s[i-1]=='='||i==0)num=1;
			//if(s[i-1]=='+')num=1;
			if(!flag)xi+=-1*fu*num;
			else xi+=fu*num;
			num=0;
		}else if(s[i]>='0'&&s[i]<='9')num=num*10+s[i]-'0';
	}
	if(s[s.length()-1]>='0'&&s[s.length()-1]<='9')sum-=fu*num;
	//cout<<"fu "<<fu<<" num "<<num<<" sum "<<sum<<" xi "<<xi<<" falg "<<flag<<endl;//
	double ans=(double)sum/(double)xi;
	printf("%c=%.3lf",letter,ans);
	return 0;
}
2021.07.26 P1022 计算器的改良(字符串)的更多相关文章
- P1010 幂次方 P1022 计算器的改良
		P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ... 
- P1022 计算器的改良
		P1022 计算器的改良 题目背景 NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给 ... 
- 洛谷—— P1022 计算器的改良
		P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ... 
- 洛谷P1022 计算器的改良
		P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ... 
- 2021.07.26 P1011 车站(斐波那契数列)
		2021.07.26 P1011 车站(斐波那契数列) [P1011 NOIP1998 提高组] 车站 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.改变形式的斐波那契 ... 
- 2021.07.26 P1010 幂次方(数论)
		2021.07.26 P1010 幂次方(数论) [P1010 NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.二进制 题意: 用20 ... 
- [NOIP2000] 提高组 洛谷P1022 计算器的改良
		题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. ... 
- 洛谷——P1022 计算器的改良
		https://www.luogu.org/problem/show?pid=1022#sub 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在 ... 
- 洛谷 P1022 计算器的改良
		题解:字符串模拟 坑点: 1) 0/-1=-0. 这是因为(来自洛谷讨论区某大犇) double下存储的数字会有精度误差,比如0可能被存成0.000000000...01然而如果你乘上或者除以一个负数 ... 
随机推荐
- Cobalt Strike的安装
			一.下载 压缩包下载回来之后,可以看到里面的文件有这些: 其中搭建团队服务器端的关键文件有两个,一个是cobaltstrike.jar,另一个是teamserver,这里我打算将团队服务器端搭在我的v ... 
- 什么是 Mybatis?
			1.Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时 只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动.创建连接.创建 statement 等繁杂的过程. ... 
- Java BlockingQueue是什么?
			Java BlockingQueue是一个并发集合util包的一部分.BlockingQueue队列是一种支持操作,它等待元素变得可用时来检索,同样等待空间可用时来存储元素. 
- 并发包中automic类的原理
			提到同步,我们一般首先想到的是lock,synchronized,但java中有一套更加轻量级的同步方式即atomic类.java的并发原子包里面提供了很多可以进行原子操作的类,比如: AtomicI ... 
- 有哪些类型的通知Advice?
			Before - 这些类型的 Advice 在 joinpoint 方法之前执行,并使用 @Before 注解标记进行配置. After Returning - 这些类型的 Advice 在连接点方法 ... 
- .NET 6学习笔记(3)——在Windows Service中托管ASP.NET Core并指定端口
			在上一篇<.NET 6学习笔记(2)--通过Worker Service创建Windows Service>中,我们讨论了.NET Core 3.1或更新版本如何创建Windows Ser ... 
- 8.5_线性控制器设计_轨迹跟踪(Follow a Desired Path)
			平衡点时所有的导数都为0 simulink中建立状态方程模型 
- 前端性能优化(JavaScript篇)
			正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 优化循环 如果现在有个一个data[]数组,需要对其进行遍历,应当怎么做?最简单的代码是 ... 
- 一块小饼干(Cookie)的故事-上篇
			cookie 如果非要用汉语理解的话应该是 一段小型文本文件,由网景的创始人之一的卢 蒙特利在93年发明. 上篇是熟悉一下注册的大致流程,下篇熟悉登录流程以及真正的Cookie 实现基本的注册功能 我 ... 
- Android Studio连接SQLite数据库与SQLite Studio实时同步的实现
			最近学习用到了android开发连接数据库这一块,发现连接成功后,都要先访问安卓项目的数据库路径data/data/项目/databases,然后把对应的db文件拷出来,再在SQLite的可视化工具中 ... 
