传送门

超级大模拟。。

代码

#include <cstdio>
#include <cstring>
#include <iostream>
#define isword(x) ((x) >= 'a' && (x) <= 'z') int n, a1, b1, a2, b2, f, x;
char s[1001], c; int main()
{
int i;
scanf("%s", s + 1);
n = strlen(s + 1);
i = f = 1;
while(i <= n)
{
if(!isdigit(s[i]))
{
if(isword(s[i]))
{
c = s[i];
i++;
continue;
}
if(isdigit(s[i - 1]) && i != 1) b1 += x * f;
if(!isdigit(s[i - 1]) && i != 1)
{
if(!isdigit(s[i - 2])) a1 += f;
else a1 += x * f;
}
if(s[i] == '+') f = 1;
if(s[i] == '-') f = -1;
if(s[i] == '=') break;
i++;
}
x = 0;
while(isdigit(s[i])) x = (x << 1) + (x << 3) + s[i++] - '0';
}
i++;
f = 1;
while(i <= n)
{
if(!isdigit(s[i]))
{
if(isword(s[i]))
{
c = s[i];
i++;
continue;
}
if(isdigit(s[i - 1]) && s[i - 1] != '=') b2 += x * f;
if(!isdigit(s[i - 1]) && s[i - 1] != '=')
{
if(!isdigit(s[i - 2])) a2 += f;
else a2 += x * f;
}
if(s[i] == '+') f = 1;
if(s[i] == '-') f = -1;
i++;
}
x = 0;
while(isdigit(s[i])) x = (x << 1) + (x << 3) + s[i++] - '0';
}
if(isdigit(s[i - 1])) b2 += x * f;
if(!isdigit(s[i - 1]))
{
if(!isdigit(s[i - 2])) a2 += f;
else a2 += x * f;
}
a1 -= a2;
b2 -= b1;
printf("%c=", c);
if(b2 == 0) puts("0.000");
else printf("%.3lf\n", double(b2) / double(a1));
return 0;
}

  

[luoguP1022] 计算器的改良(模拟)的更多相关文章

  1. P1022 计算器的改良

    P1022 计算器的改良 题目背景 NCL 是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给 ...

  2. 洛谷—— P1022 计算器的改良

    P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ...

  3. 洛谷P1022 计算器的改良

    P1022 计算器的改良 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了 ...

  4. 计算器的改良(NOIP2000)

    题目链接:计算器的改良 这道题,不是很难,但代码也短不到哪去. 我们这里决定采取边读入边计算的方法,因为题目没有明确说式子有多长. 我们需要计算什么? 我们需要知道等号两边未知数的系数和常数项即可. ...

  5. 【00NOIP普及组】计算器的改良(信息学奥赛一本通 1910)(洛谷 1022)

    [题目描述] NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先 ...

  6. P1010 幂次方 P1022 计算器的改良

    P1010 幂次方 一.题目 https://www.luogu.org/problemnew/show/P1010 二.代码 #include<bits/stdc++.h> using ...

  7. 2021.07.26 P1022 计算器的改良(字符串)

    2021.07.26 P1022 计算器的改良(字符串) 改进: 如果是我出题,我一定把未知数设为ab.buh.bluesky之类的长度不只是1的字符串! 题意: 一个一元一次方程,求解. 分析: 1 ...

  8. codevs 1015 计算器的改良 2000年NOIP全国联赛普及组

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题目描述 Description NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委 ...

  9. luogu1022计算器的改良[noip2000提高组Day1 T1]

    题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. ...

随机推荐

  1. git 标签

    如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签. 比如说,我们想为我们的 runoob 项目发布一个"1.0"版本. 我们可以 ...

  2. Android Dialogs(2)最好用DialogFragment创建Dialog

    Creating a Dialog Fragment You can accomplish a wide variety of dialog designs—including custom layo ...

  3. B. Hongcow Solves A Puzzle

    http://codeforces.com/contest/745/problem/B 题目要求的是,给定一个图形,要求里面判断是否有矩形,且仅有一个 就是 XXX.... XXX...X 是不行的, ...

  4. [书目20140902]实战Windows Azure——微软云计算平台技术详解 --徐子岩

    目录第1章  云计算技术简介    1.1  云计算所要解决的问题    1.2  云计算平台的分类    1.3  微软云计算平台Windows Azure        1.3.1  高可用性   ...

  5. javaScript关闭浏览器 (不弹出提示框)

    一段JavaScript脚本程序,负责关闭窗口,如果网页不是通过脚本程序打开的(window.open()),调用window.close()脚本关闭窗口前,必须先将window.opener对象置为 ...

  6. WPF学习11:基于MVVM Light 制作图形编辑工具(2)

    本文是WPF学习10:基于MVVM Light 制作图形编辑工具(1)的后续 这一次的目标是完成 两个任务. 画布 效果: 画布上,选择的方案是:直接以Image作为画布,使用RenderTarget ...

  7. pycharm一些快捷键(不定时添加)

    ctrl + shift + -  缩减多级菜单 ctrl + shifit + + 展开多级菜单 ctrl + shift + F8  删除多个断点 两个项目比较 ---选中要比较的项目---右键找 ...

  8. 1.了解Objective-C语言

    了解Objective-C语言 ** Objective-C 语言是"消息结构"(messaging structure) 类似C++ .Java 是"函数调用" ...

  9. qt 5中文乱码

    头文件加上#prama execution_character_set("utf-8")

  10. 富文本KindEditor使用

    1.官网down KindEditor,添加到自己的项目中:添加时可把不需要的文件夹干掉,asp/php等等.我的项目用的是纯html和js,直接调用后台api: 2.页面引入相关js.eclipse ...