字符串处理的题。原题链接

AC代码:

#include<cstring>
#include<cstdio>
#include<string>
#include<iostream>
#include<cmath>
using namespace std;
double res[3]; //res[0]~U res[1]~I res[2]~P
char unit[]={'V','A','W'};
char name[]={'U','I','P'};
double solve(int *t,int len)
{
    int pos;
    for(int i=0;i<len;++i)
    {
        pos=i;
        if(t[i]==-1) break;
    }
    if(pos==len-1) pos++;
    int len1=pos,len2=len-pos-1;

    double ans=0.00;
    pos=0;
    for(int i=len1-1;i>=0;--i)
        ans+=pow(10.0,i)*t[pos++];
    pos++;
    for(int i=1;i<=len2;++i)
        ans+=pow(0.1,i)*t[pos++];

    return ans;
}
int main()
{
    int T;
    scanf("%d",&T);
    int cnt=0;
    string str;
    while(T--)
    {
        for(int i=0;i<3;++i) res[i]=-1.0;
        getchar();
        getline(cin,str);
        printf("Problem #%d\n",++cnt);
        for(int i=0;i<str.size();++i)
        {
            if(str[i]!='=') continue;
            int j=i+1,len=0;
            int t[20];
            while(str[j]>='0'&&str[j]<='9'||str[j]=='.')
            {
                if(str[j]=='.') t[len++]=-1;
                else t[len++]=str[j]-'0';
                ++j;
            }
            double x=solve(t,len);
            if(str[j]=='m') x*=0.001;
            else if(str[j]=='k') x*=1000;
            else if(str[j]=='M') x*=1000000;

            if(str[i-1]=='U') res[0]=x;
            else if(str[i-1]=='I') res[1]=x;
            else if(str[i-1]=='P') res[2]=x;
        }
        int pos;
        for(int i=0;i<3;++i)
        {
            if(res[i]==-1) pos=i;
        }
        double ans=0.0;
        if(pos==0) ans=res[2]/res[1];
        else if(pos==1) ans=res[2]/res[0];
        else if(pos==2) ans=res[0]*res[1];
        printf("%c=%.2f%c\n\n",name[pos],ans,unit[pos]);
    }
    return 0;
}

如有不当之处欢迎指出!!

BUNOJ 1011的更多相关文章

  1. SCNU 2015ACM新生赛初赛【1001~1011】个人解题思路

            题目1001:       大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关 ...

  2. Ural 1011. Conductors

    1011. Conductors Time limit: 2.0 secondMemory limit: 64 MB Background Everyone making translations f ...

  3. poj 1011

    http://poj.org/problem?id=1011 这是一道POJ的搜索的题目,最开始确实难以理解,但做过一些搜索的题目后,也没那么难了. 大概题意就是,现在有N根木头,要拼成若干根木头,并 ...

  4. (状压) Marriage Ceremonies (lightOJ 1011)

    http://www.lightoj.com/volume_showproblem.php?problem=1011 You work in a company which organizes mar ...

  5. DFS(剪枝) POJ 1011 Sticks

    题目传送门 /* 题意:若干小木棍,是由多条相同长度的长木棍分割而成,问最小的原来长木棍的长度: DFS剪枝:剪枝搜索的好题!TLE好几次,终于剪枝完全! 剪枝主要在4和5:4 相同长度的木棍不再搜索 ...

  6. HDU 1011 (树形DP+背包)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1011 题目大意:树上取点,先取父亲,再取儿子.每个点,权为w,花费为cost,给定m消费总额,求最大 ...

  7. 1011 最大公约数GCD

    1011 最大公约数GCD 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...

  8. PAT乙级 1011. A+B和C (15)

    1011. A+B和C (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 给定区间[-231, 231 ...

  9. 2016年10月26日 星期三 --出埃及记 Exodus 19:10-11

    2016年10月26日 星期三 --出埃及记 Exodus 19:10-11 And the LORD said to Moses, "Go to the people and consec ...

随机推荐

  1. scrapy_items

    为什么要items? 当数据量多的时候,没有统一的数据管理,统一格式化麻烦 items中除了能添加字段,还能做什么? 1. 进行预先处理 2. 对从items出去的数据进行处理 3. 写上sql语句逻 ...

  2. SQL Server——存储过程

    我想从下面几个方面大概的讲述下存储过程,可能有些知识点是你没有注意的,也可能有些知识点我不知道,欢迎大家指点指点.如有不足,欢迎指教! 存储过程概念 存储过程优点 存储过程的接口 存储过程的解析.编译 ...

  3. servlet 监听器分类

    http://blog.csdn.net/cxg200888/article/details/77894842

  4. Lucene:基于Java的全文检索引擎简介

    Lucene:基于Java的全文检索引擎简介 Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全文索引应用,而是是一个用J ...

  5. ulua c#调用lua中模拟的类成员函数

    项目使用ulua,我神烦这个东西.lua单纯在lua环境使用还好,一旦要跟外界交互,各种月经不调就来了.要记住贼多的细节,你才能稍微处理好.一个破栈,pop来push去,位置一会在-1,一会在-3,2 ...

  6. 【PHP】学习中遇到的php方法

    [1]range()快速创建一个范围内数组 <?php range(0,20); 创建一个包含从 "0" 到 "20" 之间的元素范围的数组: range ...

  7. Java并发系列[4]----AbstractQueuedSynchronizer源码分析之条件队列

    通过前面三篇的分析,我们深入了解了AbstractQueuedSynchronizer的内部结构和一些设计理念,知道了AbstractQueuedSynchronizer内部维护了一个同步状态和两个排 ...

  8. nongsanli

    之后的内容只能追加,不可以修改,删除. 1.    mysql可以对字段进行MD5加密, 加密插入:INSERT INTO t_user(id,username,PASSWORD) VALUES('5 ...

  9. handlebars.js模版引擎随记

    前台的模版引擎有许多种,相比较而言 我个人更觉得handlebars更为轻便 首先github上下载自新版本的handelbars.js http://handlebarsjs.com 下载下来之后呢 ...

  10. 如何用JavaScript制作循环图形

    [图题思路]              1.确定图形一共几行,即为外层的循环的次数 2.确定每行有几种元素,代表有几个内层循环 3.确定每种元素的个数,即为每个内层循环的次数Tips:通常,找出每种元 ...