这道题看见就觉得是道水题,想着随便写写就能A了,然后就开始上手直接模拟,然后就被数据打脸了。

后面就困了一个多小时,各种改,最后还是看了题解发现了scanf的多种用法。

题目大概意思就是说:

        给一个  a.bec格式的数,让你转化。

a是正整数,b是小数,ec是10的c次方。

就是转化  a.b*10的c次方

下面给代码。

#include<iostream>
#include<cstdio>
using namespace std; int main()
{
char str[2500];
int a, b, c;
scanf("%d.", &a);
scanf("%[^e]%ne%d", str, &b, &c);
if (str[0] == 48 && c == 0 && b == 1)
{
cout << a << endl;
}
else if (c >= b)
{
printf("%d%s%.*d\n", a, str, c - b, 0);
}
else
{
printf("%d%.*s.%s\n", a,c,str, str + c);
}
return 0;
}

建议结合下下面的的看,不然几个冷门的输入输出符号是看不懂的。

https://blog.csdn.net/shyazhut/article/details/52132917

分析思路:

  首先读入正整数  也就是a,注意scanf("%d.",&a)    %d下边跟着个小数点,这样输入时就把小数点忽略掉了,并且停止读入,进入到下一个scanf

  然后就开始读入字符串,直到e为止,并且不读入e。

  %n就是获取这时候的字符串的长度

  然后%n后面还跟着个e,这个和小数点的作用时一样的,也是忽略掉输入的e,并且停止读入

  最后还接着读入一个整数,也就是e后面的数字

  就这样读入结束啦

下面是输出:

  首先,如果 字符串的首位为字符‘0’(ASCII码为整数 48),并且字符串长度只有1,并且e后面的整数为0,那么就直接输出a。

  如果   e后面的整数大于等于字符串长度(就是小数部分的长度),那么就先输出a,然后输出字符串,最后如果c-b>0,那么就用0补齐。

  如果  e后面的整数小于字符串长度(也就是小数部分的长度),那么就先输出a,然后输出长度为c的字符串,然后输出小数点,最后输出起点为(b+c)的剩余的字符串。

ok,就是这样了,学到了几个scanf的用法,美滋滋。

CodeForces - 697B的更多相关文章

  1. codeforces 697B Barnicle

    题目链接:http://codeforces.com/problemset/problem/697/B 题目大意: 将科学计数法用十进制表示.[如果类似于7.0应输出7] 解题思路: Java 中 B ...

  2. 【CodeForces 697B】Barnicle

    对科学计数法表示的数,输出其10进制的形式. c++来做,需要考虑这些细节: 当b==0,d==0时,只输出a. 当不需要补零的情况有两种: 一种是刚好是整数,只输出a(注意1.0e1的情况是输出1) ...

  3. CodeForces 697B Barnicle 模拟

    强行模拟 纪念一下…… #include<stdio.h> #include<iostream> #include<algorithm> #include<m ...

  4. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  7. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  8. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  9. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

随机推荐

  1. 基于Ambari的WebUI部署HBase服务

    基于Ambari的WebUI部署HBase服务 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari服务 博主推荐阅读: https://www.cnblogs.co ...

  2. 每日一linux命令

    每日一linux命令 http://www.cnblogs.com/peida/tag/每日一linux命令/

  3. Angular js 复制粘贴

    关于copy到剪切板的实现需要引用Clipboard.min.js https://pan.baidu.com/s/1eStTJlo 页面如下所示,需要实现 点击copy字样 将id为content的 ...

  4. 汉诺塔(思维、DP思想)

    链接:https://ac.nowcoder.com/acm/contest/3007/C来源:牛客网 题目描述 现在你有 N 块矩形木板,第 i 块木板的尺寸是 Xi*Yi,你想用这些木板来玩汉诺塔 ...

  5. JSTL 运算符汇总

    算术运算符 + . - . * . / (或 div )和 % (或 mod )  关系运算符 == (或 eq ). != (或 ne ). < (或 lt ). > (或 gt ). ...

  6. HBase从入门到精通系列:误删数据如何抢救?

    云栖君导读:有时候我们操作数据库的时候不小心误删数据,这时候如何找回?mysql里有binlog可以帮助我们恢复数据,但是没有开binlog也没有备份就尴尬了.如果是HBase,你没有做备份误删了又如 ...

  7. 51nod1021:石子归并

    1021 石子归并 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合 ...

  8. 19 01 12 javascript 定时器 封闭函数

    定时器 定时器在javascript中的作用1.制作动画2.异步操作3.函数缓冲与节流 定时器: setTimeout 只执行一次的定时器 clearTimeout 关闭只执行一次的定时器 setIn ...

  9. CTF-域渗透--HTTP服务--命令注入2

    开门见山 1. 启动metasploit 2. 设置参数参数选项 3. 查看最后设置后的结果 4. 启动监听 5. 使用msfvemon制作webshell 6. 开启apache服务 7. 使用ba ...

  10. Codeforces 997A Convert to Ones(思维)

    https://codeforces.com/problemset/problem/997/A 题目大意: 给定一串0-1序列,定义两种操作: 操作一:选取一连续串倒置. 操作二:选取一连续串把进行0 ...