zoukankan      html  css  js  c++  java
  • 洛谷 CF863A Quasi-palindrome

    problem

    给你一个小于等于(10^{9})的数,问你能不能在这个数的前加前导(0),是这个数变成回文数。能则输出YES,否则输出NO

    thinking

    主要思路:判断回文数

    我们可以把题目中的加前导(0)替换成删除末尾的(0)
    证明:

    • 如果末尾没有(0)且这个数原来不是回文数,那么你前面不管怎么加(0)都不会成回文数;
    • 如果末尾有(0),则你可以通过删除末尾所有(0)来达到加前导(0)的效果。
      (对“所有”的解释:不删除末尾所有的(0),此数肯定不是回文数,因为自然数是没有前导(0)的)

    拿样例举例:

    131
    

    这个数本来就是回文数,所以直接输出(YES)

    320
    

    首先先判断这个数是不是回文数,发现不是,则删除末尾所有的(0),原数变为(32),再判断是否为回文数,发现不是,则输出(NO)

    2010200
    

    首先先判断这个数是不是回文数,发现不是,则删除末尾所有的(0),原数变为(20102),再判断是否为回文数,发现是回文数,则输出(YES)

    program

    献上丑码代码

    var
     n:string;
    function hws(n:string):string;
     var
      i:longint;
     begin
      for i:=1 to length(n) div 2 do if n[length(n)-i+1]<>n[i] then exit('NO');
      exit('YES');
     end;//判断是否为回文数
    begin
     readln(n);
     while n[length(n)]='0' do delete(n,length(n),1);//删除所有的末尾0
     write(hws(n));
    end.
    
  • 相关阅读:
    HDNOIP普及+提高整合
    [BZOJ4016][FJOI2014]最短路径树问题
    [BZOJ3697]采药人的路径
    [COJ0985]WZJ的数据结构(负十五)
    [KOJ6024]合并果子·改(强化版)
    [KOJ6023]合并果子·改
    [KOJ0574NOIP200406合并果子]
    Atomic operations on the x86 processors
    Javascript 严格模式详解
    const C语言(转)
  • 原文地址:https://www.cnblogs.com/wuzhenhao/p/13497350.html
Copyright © 2011-2022 走看看