<OJ_Sicily>数字反转
来源:互联网 发布:中国民生网络电视台 编辑:程序博客网 时间:2024/05/16 00:25
Description
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
Input
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
Output
输出共 1 行,一个整数,表示反转后的新数。
解题思路:对于数字输入,采用字符数组输入的方式进行输入,将输入存入到一个字符数组里面,当第一个字符为“-”说明这是一个负数,否则为整数。先对字符数组进行遍历到数字的个位,然后从后往前寻找第一个不为0 的数(也就是排除开头为0的情况),然后从该数开始逐个输出,最后判断第一位是否为符号位,如果是符号位则不需要输出(因为符号位是第一个输出的),如果是数字则直接输出。
#include <iostream>#include <stack>using namespace std;int main(int argc, const char * argv[]) { // insert code here... char inStr[12]; int i = 0; bool isNegative = false; // 标识是否为负数 cin >> inStr; if (inStr[0] == '-') { // 若为负数,isNegative = true; isNegative = true; } while (inStr[i] != '\0') { // 先遍历到数字结尾 i++; } while (inStr[i-1] == '0') { // 从结尾开始返回到第一个不为0的数 i--; } if (isNegative) { // 若为负数,先输出负号 cout << "-" ; } for (int j = i-1; j > 0; j--) { // 逐个输出数字 cout << inStr[j]; } if (!isNegative) { // 若为负数说明第一个为符号位,不用输出 cout << inStr[0] << endl; } else cout << endl; // 若不为负数,说明第一个为数字位,需要输出 return 0;}
0 0
- <OJ_Sicily>数字反转
- 数字反转
- 数字反转
- 反转数字
- 数字反转
- 数字反转
- 数字反转
- 数字反转
- 数字反转
- 数字反转
- 数字反转
- 反转数字
- 数字反转
- 数字反转
- 数字反转
- 反转数字
- 数字反转
- 数字反转
- 招聘行业的经验
- HADOOP -hdfs of wordcount
- HTML5屏幕适配标签设置
- opencv bug
- HTTPS攻击
- <OJ_Sicily>数字反转
- Mybatis与Hibernate的详细对比
- DOM(文档对象模型) 概念
- 记录这两天用SSM(spring+spring mvc+mybatis)框架出现的问题
- 这只是一个有关于安全系统的基本介绍
- 每日一linux命令(9)-------touch
- SQL Server命令大全
- 编程输出九九乘法表
- 图论(二):图的四种最短路径算法