【字符串处理】 vijos 1756 数字反转

标签:模拟NOIP普及组2011

背景

noip2011 NO.1

描述

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

格式

输入格式

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

输出格式

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

样例1

样例输入1[复制]

123 

样例输出1[复制]

321 

样例2

样例输入2[复制]

-380 

样例输出2[复制]

-83 

限制

1s

提示

【数据范围】
-1,000,000,000 ≤ N ≤ 1,000,000,000 。

来源

noip 2011

不知道c++有个函数叫reverse()笑

还是水哦

# include<string>
# include<iostream>
# include<cstdio>
# include<cstring>
# include<algorithm>
using namespace std;
string s;
int ok=1,p;
int main(){
    cin>>s;
    if(s[0]==‘-‘){ok=0;reverse (++s.begin(),s.end ());}
    else reverse (s.begin(),s.end ());
    if(ok){for(int i=0;i<s.size();i++)if(s[i]!=‘0‘){p=i;break;}for(int i=p;i<s.size();i++)cout<<s[i];}
    else {cout<<s[0];for(int i=1;i<s.size();i++)if(s[i]!=‘0‘){p=i;break;}for(int i=p;i<s.size();i++)cout<<s[i];}
}
时间: 2024-10-20 05:13:12

【字符串处理】 vijos 1756 数字反转的相关文章

JSK-23223 数字反转【进制】

数字反转 给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形 式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入格式 输入共 1 行,一个整数 NNN. 输出格式 输出共 1 行,一个整数,表示反转后的新数. 数据规模与约定 ?1,000,000,000≤N≤1,000,000,000 输出时每行末尾的多余空格,不影响答案正确性 样例输入1 1241 样例输出1 1421 样例输入2 -380 样例输出2 -83 题目来源 NOIP

洛谷-数字反转(升级版)-简单字符串

题目描述 Description 给定一个数,请将该数各个位上数字反转得到一个新数.    这次与NOIp2011普及组第一题不同的是:这个数可以是小数,分数,百分数,整数.整数反转是将所有数位对调:小数反转是把整数部分的数反转,再将小数部分的数反转,不交换整数部分与小数部分:分数反转是把分母的数反转,再把分子的数反转,不交换分子与分母:百分数的分子一定是整数,百分数之改变数字部分.整数新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零:小数新数的末尾不为

1.5编程基础之循环控制_29:数字反转

/* 1.5编程基础之循环控制 29:数字反转 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个整数,请将该数各个位上数字反转得到一个新数. 新数也应满足整数的常见形式,即除非给定的原数为零, 否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入 输入共 1 行,一个整数N. -1,000,000,000 ≤ N≤ 1,000,000,000. 输出 输出共 1 行,一个整数,表示反转后的新数. 样例输入 样例 #1: 123 样例 #2: -380 样例输出 样

九度OJ 1089 数字反转

题目1089:数字反转 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2591 解决:1425 题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. 只有n行,每行两个正整数a和b(0<a,b<=10000). 输出: 如果满足题目的要求输出a+b的值,否则输出NO. 样例输入: 2 12 34 99 1 样例输出: 46 NO #in

10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中。例如123放在num[0]中,456放在num[1]中……统计共有多少个整数,并输出这些数。

10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中.例如123放在num[0]中,456放在num[1]中--统计共有多少个整数,并输出这些数. #include <stdio.h> int main(){ void search(char * parr, int * pnum); char arr[100],* parr; int num[30],* pnum; parr=arr;

( # #@ ## 在define中的应用)或( 连接两个字符串或者两个数字、强制转化成单引号、强制转化成双引号 )附加字符串强制转化成数字

1. 修改成常用的几个连接表示L与x连接. 以下来自网络:#define Conn(x,y) x##y#define ToChar(x) #@x#define ToString(x) #x x##y表示什么?表示x连接y,举例说:int n = Conn(123,456); 结果就是n=123456;char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";怎么样,很神奇吧 再来看#@x,其实就是给x

C# 使用正则表达式去掉字符串中的数字,或者去掉字符串中的非数字

/// 去掉字符串中的数字 public static string RemoveNumber(string key)          {              return Regex.Replace(key, @"\d", "");          } //去掉字符串中的非数字public static string RemoveNotNumber(string key)  {      return Regex.Replace(key, @"

java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断方法,如下: // 判断一个字符串是否都为数字 public boolean isDigit(String strNum) { return strNum.matches("[0-9]{1,}"); } // 判断一个字符串是否都为数字 public boolean isDigit(Str

JavaScript判断字符串能否转化为数字

判断一个字符串能否转化为数字 我们常常使用parseInt函数. 不过该函数的适用范围是很小的. 一般说来对于 如下类似 var myStr = "123hello"; 使用parseInt 或者isNaN(myStr)并不能确定整个字符串是不是数字. 这个时候需要用正则表达式来完成. var pattern = /^[0-9]/; pattern.test(myStr); 静态变量 每个事例对象公用一个变量.在类的层次上操作,不是在实例的层次上操作. 私有静态变量的创建可以采用闭包的