题目链接: B. Barnicle

题意:给出科学计数法 转化成十进制的整数或小数 并输出。

思路:暑假训练赛见过了,当时大腿A掉了,并表示是道水题。

   刷CF再次遇见,毫不留情WA了几次。比如:

0.e0       0

1.0e0     1

   突然觉得自己不能再依赖CF这种看着sample dbug的模式了。

附代码:

/// 给出科学计数法 转化成十进制的整数或小数 并输出

#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

string str;

int main() {
    //freopen("in.cpp", "r", stdin);
    while(cin >> str) {
        string ans = "";
        int len = str.length();
        int lose;
        for (int i=len-1; i>=0; --i) {
            if (str[i] == 'e') {
                lose = i;
                break;
            }
        }

        int a = str[0] - '0';
        if (a == 0) {
            int endd = 0;
            for (int i=lose-1; i>=0; --i){
                if (str[i] > '0' && str[i] <= '9') {
                    endd = i;
                    break;
                }
            }
            str.resize(endd+1);
            cout << str << endl;
            continue;
        }

        ans += str[0];
        int b = 0;
        for (int i=lose+1; i<len; ++i) {
            b = b*10 + str[i]-'0';
        }
        int cnt1 = 0;
        bool first = false; //
        for (int i=2; i<lose; ++i) {
            if (cnt1 < b) {
                ans += str[i];
            }
            else {
                if (first == false) {
                    first = true;
                    ans += '.';
                }
                ans += str[i];
            }
            cnt1++;
        }
        while(cnt1 < b) {
            ans += '0';
            cnt1++;
        }
        if (ans[1] == '.') {
            int anslen = ans.length();
            bool ok = false;
            for (int i=2; i<anslen; ++i) {
                if (ans[i] > '0' && ans[i] <= '9') {
                    ok = true;
                    break;
                }
            }
            if (!ok) ans.resize(1);
        }
        cout << ans << endl;
    }
    return 0;
}

CodeForces #362 div2 B. Barnicle的更多相关文章

  1. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  2. codeforces #round363 div2.C-Vacations (DP)

    题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...

  3. codeforces round367 div2.C (DP)

    题目链接:http://codeforces.com/contest/706/problem/C #include<bits/stdc++.h> using namespace std; ...

  4. codeforces 235 div2 C Team

    题目:http://codeforces.com/contest/401/problem/C 题意:n个0,m个1,求没有00或111的情况. 这么简单的题..... 做题的时候脑残了...,今天,贴 ...

  5. Codeforces #245(div2)

    A:A. Points and Segments (easy) 题目看了n久,開始认为尼玛这是div2的题目么,题目还标明了easy.. 意思是给你一n个点,m个区间,在n个点上放蓝球或者红球,然后让 ...

  6. codeforces #262 DIV2 C称号Present(二分法+贪婪)

    职务地址:http://codeforces.com/contest/460/problem/C 这个题是用二分枚举最小值.然后推断是否能在规定的次数内使得全部的数都达到这个值.推断的时候要用贪心的方 ...

  7. codeforces 369 div2 C dp

    http://codeforces.com/contest/711 C. Coloring Trees time limit per test 2 seconds memory limit per t ...

  8. Codeforces#371 Div2

    这是一场非常需要总结的比赛,交了3题,最后终测的时候3题全部没过,一下掉到了绿名,2333 Problem A 题意:给定区间[l1,r1],[l2,r2],然后给定一个整数k,求区间当中相交的元素, ...

  9. codeforces #321 DIV2

    A题: 链接:http://codeforces.com/contest/580/problem/A dp,最长连续不上升子序列 #include<iostream> #include&l ...

随机推荐

  1. 手机端html5触屏事件(touch事件)

    touchstart:触摸开始的时候触发 touchmove:手指在屏幕上滑动的时候触发 touchend:触摸结束的时候触发 而每个触摸事件都包括了三个触摸列表,每个列表里包含了对应的一系列触摸点( ...

  2. 体验Visual Studio 2015 之 MVC - 视图组建

    VS2015 PERVIEW中可以创建MVC 项目. 我们可以 发现有几大亮点. 首先我们看目录结构: 当前项目包含两个主要的文件夹:Solution Items .src 很明显src文件夹下为当前 ...

  3. PCB上过孔via钻孔的直径如何设置 是任意的吗 谈谈PCB钻孔工艺及规格

    PCB上过孔via钻孔的直径如何设置,是不是可以随便填入一个直径尺寸就行了?比如我的走线宽度是6mil,那我的via过孔直径也设置为6mil,节约布线空间岂不是更好?这样的设计板厂是否都能按照设计规格 ...

  4. ASP.NET 画图与图像处理-生成高质量缩略图

    http://www.cftea.com/c/2007/08/SG9WFLZJD62Z2D0O.asp

  5. Office 365 – SharePoint 2013 Online 之WebPart开发、部署教程

    1.打开Visual Studio,新建一个项目,选择SharePoint空项目,如下图: 2.选择调试站点和沙盒解决方案,如下图: 3.在项目中,添加一个WebPart,如下图: 4.添加完毕的项目 ...

  6. PyCharm 教程(五)断点 调试

    PyCharm 教程(五)断点 调试 PyCharm 作为IDE,断点调试是必须有的功能.否则,我们还真不如用纯编辑器写的快. [运行]和[调试]前的设置,详见前面的文章,helloword. 1,设 ...

  7. 如何解决xx列不在表中

    在连接数据库的程序中常会出现xx列不在表中的问题?那么应该怎么解决呢? 产生此问题的原因有三种: 1.数据表没这个字段2.sql查询没将这个字段查出来3.字段名写错了 还有重要的是一定要检查你的数据库 ...

  8. [Linux]服务管理:rpm包, 源码包

    --------------------------------------------------------------------------------------------------- ...

  9. 杂记(编程style)----google code style!

    1.文件名 使用小写字母和下划线组合.头文件以.h结尾,定义文件用.cc结尾.例如:my_useful_class.cc 2.类型名 使用大写字母开头,多个单词组合时每个单词的首字母大写.例如:Url ...

  10. Linux 常用命令笔记

    Linux 常用命令笔记 1. locate locate:用来定位文件的位置,如:locate a.txt 但是这个命令有延迟,也就是新建的文件不一定能搜索到,如果非要找到新建的文件可以使用 upd ...