题目简介

题目描述

      给定一个数,请将该数各个位上数字反转得到一个新数。



      这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数。整数反转是将所有数位对调;小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分;分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母;百分数的分子一定是整数,百分数只改变数字部分。整数新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零;小数新数的末尾不为0(除非小数部分除了0没有别的数,那么只保留1个0);分数不约分,分子和分母都不是小数(约分滴童鞋抱歉了,不能过哦。输入数据保证分母不为0),本次没有负数。



输入输出格式



输入格式:

一个数s



输出格式:

一个数,即s的反转数



输入输出样例



输入样例#1:

5087462

输出样例#1:

2647805



输入样例#2:

600.084

输出样例#2:

6.48



输入样例#3:

700/27

输出样例#3:

7/72



输入样例#4:

8670%

输出样例#4:

768%

思路

字符串分割,逆序,删除前后导0

C++代码样例

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <string>
#include <cstring>
#include <vector> using namespace std; int SplitString(const string &str, vector<string> &v, const string &flag)
{
size_t pos_0 = 0, pos_1 = 0;
string temp = "";
pos_1 = str.find(flag, pos_0);
while (pos_1 != string::npos)
{
v.push_back(str.substr(pos_0, pos_1 - pos_0));
pos_0 = pos_1 + 1;
pos_1 = str.find(flag, pos_0);
}
v.push_back(str.substr(pos_0, str.length() - pos_0));
return v.size();
} unsigned int SearchFlag(char str[])
{
for (int i = 0; i < strlen(str); i++)
{
if (str[i] == '%' || str[i] == '.' || str[i] == '/')
{
return str[i];
}
}
return 0;
} int main(void)
{
string flagStr = "";
char flag = '\0';
char tempCh = '\0';
vector<string> v;
char str[255] = {'\0'};
scanf("%s", str);
if (flag = SearchFlag(str))
{
flagStr.push_back(flag);
SplitString(str, v, flagStr);
}
else
{
v.push_back(str);
}
for (int i = 0; i < 2; i++)
{
if (v[i].length() == 0 || i > v.size() - 1)
continue;
for (size_t j = 0; j < v[i].length() / 2; j++)
{
tempCh = v[i][j];
v[i][j] = v[i][v[i].length() - j - 1];
v[i][v[i].length() - j - 1] = tempCh;
}
while (v[i][0] == '0' && v[i].length() > 1)
{
v[i].erase(0, 1);
}
while (v[i][v[i].length() - 1] == '0' && v[i].length() > 1)
{
v[i].erase(v[i].length() - 1);
}
}
cout << v[0].c_str() << flag << v[1].c_str();
}

洛谷P1553 数字反转(升级版)的更多相关文章

  1. 洛谷P1553数字反转升级版

    题目链接:https://www.luogu.org/problemnew/show/P1553

  2. 洛谷 P1553 数字反转(升级版)【字符串+STL stack】

    P1553 数字反转(升级版) 题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数.整数反转是将所有数位对调 ...

  3. 洛谷 P1553 数字反转(升级版)

    P1553 数字反转(升级版) 题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数.整数反转是将所有数位对调 ...

  4. (Java实现) 洛谷 P1553 数字反转(升级版)

    题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数.整数反转是将所有数位对调:小数反转是把整数部分的数反转, ...

  5. (水题)洛谷 - P1553 - 数字反转(升级版) - 字符串格式转换

    https://www.luogu.org/problemnew/show/P1553 忘记给整数加上前导零去除的代码了.其实不去也可以,额外的进位用一个carry另外存起来就好. #include& ...

  6. 洛谷P1553 数字翻转(升级版)

    题目链接 https://www.luogu.org/problemnew/show/P1553 题目描述 给定一个数,请将该数各个位上数字反转得到一个新数. 这次与NOIp2011普及组第一题不同的 ...

  7. 洛谷P1307 数字反转【水题】

    给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入输出格式 输入格式: 一个整数 NN ...

  8. 洛谷——P1307 数字反转

    https://www.luogu.org/problem/show?pid=1307#sub 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原 ...

  9. 洛谷 P1307 数字反转

    链接:https://www.luogu.org/problem/P1307 题目: 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否 ...

随机推荐

  1. CentOS7安装 xmlsec1 编译并运行官方示例

    1. 自动安装下列软件和依赖(默认已安装libxml2和libxslt) yum install xmlsec1-openssl xmlsec1-openssl-devel 2. 查看官网 www.a ...

  2. net5 webapi中 SwaggerUI如何进行版本控制

    创建项目 net5就自带上了swaggerUI,见红色 // This method gets called by the runtime. Use this method to add servic ...

  3. Spring Boot 轻量替代框架 Solon 的架构笔记 - new

    Solon 是一个微型的Java开发框架.项目从2018年启动以来,参考过大量前人作品:历时两年,4000多次的commit:内核保持0.1m的身材,超高的跑分,良好的使用体验.支持:RPC.REST ...

  4. 某SQL注入--报错注入payload

    1.证明存在sql注入,根据这个报错语句,,有'  有% 2.payload  闭合语句 %' or (select extractvalue("anything",concat( ...

  5. abp加DDD开发:低耦合、可复用、可扩展的【工单】业务模块-简介和集成

    前言 很多场景[单体+模块化]比微服务更合适,开发难度低.代码可复用性强.可扩展性强.模块化开发有些难点,模块启动与卸载.模块之间的依赖和通讯.asp.net core abp为我们提供了模块化开发能 ...

  6. MySQL5.7和MySQL8.0通用配置文件

    MySQL5.7 my.cnf配置 [client] port=3306 socket=/log/mysql/mysql.sock [mysql] socket=/log/mysql/mysql.so ...

  7. [Azure Devops] 使用 Azure Pipelines 实现 CI

    1. 什么是 Azure Pipelines Azure Pipelines 会自动构建和测试代码项目,以将其提供给其他人.它适用于任何语言或项目类型.Azure Pipelines 结合了持续集成 ...

  8. Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)

    Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...

  9. Kafka核心技术与实战,分布式的高性能消息引擎服务

    Kafka是LinkedIn开发并开源的一套分布式的高性能消息引擎服务,是大数据时代数据管道技术的首选. 如今的Kafka集消息系统.存储系统和流式处理平台于一身,并作为连接着各种业务前台和数据后台的 ...

  10. NPM 与 NPX 区别

    NPM 和 NPX 区别 NPM Node Package Manager npm 是 Node.js 的软件包管理器,其目标是自动化的依赖性和软件包管理 NPX npx 是执行 Node 软件包的工 ...