题目描述

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

输入输出格式

输入格式:

输入文件名为reverse.in 。

输入共1 行,一个整数 N。

输出格式:

输出文件名为reverse.out 。

输出共1行,一个整数,表示反转后的新数。

输入输出样例


输入样例#1:


123

输出样例#1:


321


输入样例#2:


-380

输出样例#2:

-83

说明

数据范围

-1,000,000,000≤ N≤ 1,000,000,000 。

noip2011普及组第一题

WriteUp:



参考AC代码:

用队列进行输出:

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <queue> using namespace std; int main(void){
int a;
int flag = 0;
queue<int> que;
scanf("%d",&a); if (a>0)
{
flag = 0;
}else if (a==0)
{
printf("0");
return 0;
}else{
flag = 1;
a = -a;
} while (a!=0)
{
if (a%10==0 && que.size()==0)
{
a /= 10;
continue;
}
que.push(a%10);
a /= 10;
} if (!flag)
{
while (!que.empty())
{
printf("%d",que.front());
que.pop();
}
}else{
printf("-");
while (!que.empty())
{
printf("%d",que.front());
que.pop();
}
}
return 0;
}

使用数字反转公式(简单):

#include <cstdio>
#include <iostream>
#include <cmath>
#include <cstdlib> using namespace std; int main(void)
{
int num;
int ans = 0;
scanf("%d",&num); //reverse process begin while(num){
ans *= 10;
ans += num%10;
num /= 10;
} //end printf("%d",ans);
return 0;
}

最新文章

  1. 正则表达式校验URL
  2. GJM : 使用浏览器的计算力,对抗密码破解 [转载]
  3. 新一代服务器性能测试工具Gatling
  4. Count the Colors(线段树染色)
  5. QQ分组实现,可收缩---ExpandableListView
  6. udp通信C++实现的细节
  7. 解决github提交commit,contributions不统计显示绿色的问题
  8. Huffman树编码-优先队列实现
  9. thinkphp学习笔记2—入口文件
  10. PS多形式的部分之间复制“笨办法”
  11. JS总结之二:DOM对象控制HTML
  12. java多线程安全问题 静态函数的修饰
  13. Stars project
  14. 字符和字符串在Java中的旅程
  15. 金三银四招聘季,这些BAT以及独角兽互联网公司官方招聘网站值得关注。(个人梳理备用:附BAT以及独角兽公司官方招聘网址)
  16. css 鼠标选中内容背景色
  17. 码云-中国的github
  18. HDU 1575 Tr A(矩阵高速幂)
  19. Bearer Token的加密解密规则(OAuth中间件)
  20. jsp小基础归纳

热门文章

  1. python flask框架详解
  2. Kilo 使用教程
  3. DRF(django rest-framework)
  4. vue 树形数据增加属性并计算树节点的深度
  5. Python基础【基本数据类型】
  6. UI透明欺诈
  7. HTML5中window.postMessage,在两个页面之间的数据传递
  8. Paint Chain HDU - 3980
  9. P1601_A+B Problem(高精)(JAVA语言)
  10. 创建Maven父子项目以及它们的优点