首页 > 其他分享 >【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)

【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)

时间:2023-11-14 13:32:05浏览次数:34  
标签:新数 ch 洛谷 NOIP2011 题解 rit 样例 000 include

[NOIP2011 普及组] 数字反转

题目描述

给定一个整数 【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)_数字反转,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。

输入格式

一个整数 【洛谷 P1307】[NOIP2011 普及组] 数字反转 题解(字符串)_数字反转

输出格式

一个整数,表示反转后的新数。

样例 #1

样例输入 #1

123

样例输出 #1

321

样例 #2

样例输入 #2

-380

样例输出 #2

-83

提示

【数据范围】

$-1,000,000,000\leq N\leq 1,000,000,000 $。

noip2011 普及组第一题

思路

如果输入0直接输出,否则输出符号,去除多余的0,倒序输出。

AC代码

#include <iostream>
#include <vector>
#include <iostream>
#include <sstream>
#define AUTHOR "HEX9CF"
using namespace std;

int main()
{
    string str;
    char ch;
    vector<int> v;
    getline(cin, str);
    if(str == "0"){
        cout << str << endl;
        return 0;
    }
    stringstream ss;
    ss << str;
    while (ss >> ch)
    {
        if ('-' == ch)
        {
        putchar('-');
        }
        else
        {
            v.push_back(ch - '0');
        }
    }
    vector<int>::reverse_iterator rit = v.rbegin();
    for(;rit != v.rend(); rit++){
        if(0 != *rit){
            break;
        }
    }
    for(;rit != v.rend(); rit++){
        cout << *rit;
    }
    return 0;
}

标签:新数,ch,洛谷,NOIP2011,题解,rit,样例,000,include
From: https://blog.51cto.com/HEX9CF/8367055

相关文章

  • AGC041D-Problem Scores 题解
    题目链接luoguatcoder分析令\(k=\left\lfloor\frac{n}{2}\right\rfloor\)对于第三个条件,只需要满足\(\sum_{i=1}^{k+1}a[i]<\sum_{i=n-k+1}^{n}a[i]\)即可有一个\(trick\):构造一个单调不降或不增的序列可以转化为每次做一次前缀加操作例如本题要求构造一个单调......
  • [题解] CF1748E Yet Another Array Counting Problem
    YetAnotherArrayCountingProblem给你一个长度为\(n\)的序列和一个数\(m\),求有多少个长度为\(n\)的序列\(b\)满足:\(\foralli\in[1,n],b_i\in[1,m]\)。对于每个区间\([l,r]\),\(b\)中最大值最靠左的位置和\(a\)相同。\(n,m\le2\times10^5,n\ti......
  • 洛谷 P9129 [USACO23FEB] Piling Papers G
    第一问是简单的,\(2(n-1)-[T=1]\cdot\max\limits_{i=1}^{n}\{dep_i\}\)。对于第二问:设\(f(u)\)表示要求起点和终点均为\(u\)的情况下从\(1\)时刻开始遍历完以\(u\)为根的子树的最小花费,\(g(u)\)表示要求起点为\(u\),重点深度最大的情况下从\(1\)时刻开始遍......
  • [题解] P4435 [COCI2017-2018#2] ​​Garaža
    P4435[COCI2017-2018#2]Garaža给你一个长度为\(n\)的序列\(a\),单点改,查询区间\(\gcd\)不为1的子区间个数。\(n,Q\le10^5,a_i\le10^9\)。先看单次全局查询怎么做。考虑一个分治,每次我们要计算跨过分治中心\(mid\)的答案。因为这个是单调的,所以可以双指针做......
  • 【题解】P4768 [NOI2018] 归程 / Kruskal 重构树
    补补以前懒得总结的零碎东西。kruskal重构树使用条件:求无向图中两点之间所有路径的最大边权的最小值构造:依kruskal得到最小生成树从小到大考虑生成树中的边\((u,v)\)对于\((u,v)\),新建一个结点,作为重构树中\(u,v\)的父结点该结点的点权为\((u,v)\)的......
  • SPOJ1805 HISTOGRA - Largest Rectangle in a Histogram 题解
    LinkSPOJ1805HISTOGRA-LargestRectangleinaHistogramQuestion在一条水平线上有\(n\)个高为\(a_i\)的矩形,求包含于这些矩形的最大子矩形面积。Solution我们定义\(L_i\)表示有\(a_i\)这个高度的一根悬线,往左最多能平移到什么位置初始化显然,\(a_i=i\)考虑转移......
  • 题解 AT_codefestival_2016_final_f【Road of the King】
    注意到当前移动到的位置并不重要,重要的是经过的点数和\(1\)所在强连通分量大小,因此把它们放进状态里:设\(f_{i,j,k}\)表示进行\(i\)次移动,经过了\(j\)个不同的点,此时\(1\)所在的强连通分量大小为\(k\)的方案数。考察下一次移动到的点的情况:没有访问过:共有\(n-j\)......
  • UVA11282 题解
    题意简述Kelly寄出去\(n\)封邀请函,但她希望只有小于等于\(m\)个人收到他们自己的邀请函(即有至少\(n-m\)个人收到了别人的邀请函)。思路形成容易发现,这道题是一个典型的错排题,我们只需要分别求出\(n-m\)个元素到\(n\)个元素的错排即可。接下来为错排的推导,我们令\(f......
  • 洛谷P8599.带分数
    这道题可以应用数位dp的思想:既然根据限制条件算出符合条件的数很难,如同大海捞针,那我就直接拿可能用到的数字,按数位把它拼出来,反而还更快。对于这道题,三个数字就是1到9全排列的三段,我们只要对每个排列,枚举分段方式即可。#include<stdio.h>#include<algorithm>#include<ios......
  • [题解] P4755 Beautiful Pair
    P4755BeautifulPair给你一个长度为\(n\)的序列\(a\),求有多少个区间\([l,r]\)满足\(a_l\cdota_r\le\max_{i=l}^ra_i\)。\(n\le10^5,a_i\le10^9\)。首先按最大值位置分治。记当前分治区间为\([l,r]\),分治中心为\(mid\)。那么我们现在要做的就是统计跨......