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然而如果你乘上或者除以一个负数 ...
随机推荐
- 压测工具 jmeter入门教程及汉化修改
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工 ...
- bzoj4044/luoguP4762 [Cerc2014]Virus synthesis(回文自动机+dp)
bzoj4044/luoguP4762 [Cerc2014]Virus synthesis(回文自动机+dp) bzoj Luogu 你要用ATGC四个字母用两种操作拼出给定的串: 1.将其中一个字符 ...
- Notion-douan:搭建自己的阅读清单
前言 交完论文盲审稿,终于从接近一年的实习.秋招和论文的忙碌中闲下来. 在复盘秋招的时候发现自己虽然看过不少书,但缺少整理和思考,所以想趁这个机会梳理一下自己的阅读习惯,希望以后再读新的东西可以更系统 ...
- 垃圾收集器G1和CMS ,以及老年代和新生代的比例设置
首先 1.G1是包括年轻代和年老代的GC 2.CMS是年老代GC 3.二者在某些时候都需要FullGC(serial old GC)的辅助 ###CMS收集器:CMS(ConCurrent Mark ...
- Kerberos基本原理、安装部署及用法
1. 概述 Kerberos是一种认证机制. 目的是,通过密钥系统为客户端/服务器应用程序提供强大的认证系统:保护服务器防止错误的用户使用,同时保护它的用户使用正确的服务器,即支持双向验证:Kerbe ...
- eclipse启动指定jvm的版本
参阅:https://www.eclipse.org/forums/index.php/t/1105435/ https://wiki.eclipse.org/Eclipse.ini#-vm_valu ...
- 哪些是重要的bean生命周期方法? 你能重载它们吗?
有两个重要的bean 生命周期方法,第一个是setup , 它是在容器加载bean的时候被调用.第二个方法是 teardown 它是在容器卸载类的时候被调用. The bean 标签有两个重要的属性 ...
- Switch语句的条件只能接受什么类型的值
switch语句只能针对基本数据类型使用,这些类型包括int.char.枚举.bool等.对于其他类型,则必须使用if语句. 在一个 switch 中可以有任意数量的 case 语句.每个 case ...
- synchronized使用及原理解析
修饰静态方法.实例方法.代码块 Synchronized修饰静态方法,对类对象进行加锁,是类锁. Synchronized修饰实例方法,对方法所属对象进行加锁,是对象锁. Synchronized修饰 ...
- Windows 10 安装 wordpress
如何在Windows上安装wordpress. 安装前准备: 安装并配置好Apache httpd及PHP,见<Windows10安装PHP7+Apache 2.4>. 安装好MySQL, ...