题目简介

题目描述

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



      这次与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();
}

最新文章

  1. iPhone 6 被盗记录二【写在315前夕:苹果售后福州直信创邺在没有三包的情况下帮小偷翻新、助力小偷换机销赃!无视王法。让人震惊,痛心,憎恨!消费者很受伤很无奈】
  2. synchronized四要素及抽象
  3. zabbix_agentd安装脚本共享
  4. jQuery clone()方法绑定事件
  5. 外企iOS开发的笔试题
  6. Apache 流媒体 拖动模块编译
  7. 反射实体自动生成EasyUi DataGrid模板 第二版--附项目源码
  8. SendMessage和PostMessage区别以及WPARAM 和 LPARAM区别
  9. PKU-1704-Georgia and Bob
  10. MaltReport2:基于 OpenDocument/OpenOfficeXML 的报表引擎
  11. Erlang cowboy 处理不规范的客户端
  12. Java分布式锁,搞懂分布式锁实现看这篇文章就对了
  13. 《网络是怎样连接的》PDF电子版书籍分享
  14. Java Web 笔试(面试)题
  15. NPOI 操作Word
  16. BZOJ1171 : 大sz的游戏
  17. paycharm导入webdriver包报错:module &#39;selenium.webdriver&#39; has no attribute &#39;Firefox&#39;
  18. java 标准输出流、标准错误输出流、标准输入流及扫描仪
  19. Apple Watch 会再一次改变世界么?
  20. mysql索引是什么?索引结构和使用详解

热门文章

  1. Google单元测试框架gtest之官方sample笔记4--事件监控之内存泄漏测试
  2. MyBatis中的Map
  3. ORM框架 和 面向对象编程
  4. 【odoo14】odoo 14 Development Cookbook【目录篇】
  5. JMeter扩展Java请求实现WebRTC本地音视频推流压测脚本
  6. Elasticsearch 单字符串多字段查询
  7. 【Azure 服务总线】详解Azure Service Bus SDK中接收消息时设置的maxConcurrentCalls,prefetchCount参数
  8. 了解PSexec
  9. Android Studio 之生成正式签名的 APK 文件
  10. Python 实现自动化 Excel 报表