• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            PALIN - SPOJ 5. The Next Palindrome

            A positive integer is called a palindrome if its representation in the decimal system is the same when read from left to right and from right to left. For a given positive integer K of not more than 1000000 digits, write the value of the smallest palindrome larger than K to output. Numbers are always displayed without leading zeros.

            Input

            The first line contains integer t, the number of test cases. Integers K are given in the next t lines.

            Output

            For each K, output the smallest palindrome larger than K.

            Example

            Input:
            2
            808
            2133

            Output:
            818
            2222

            Warning: large Input/Output data, be careful with certain languages


            問(wèn)題:
            求出比輸入整數(shù)大的最小的回文數(shù),輸入整數(shù)不超過(guò) 1000000 個(gè)數(shù)字。

            解法:
            貪心。

            代碼 LISP SBCL :
             1(defun digit-succ(x)
             2 (elt "0123456789A" (position x "*0123456789")))
             3
             4(let ((num (read)))
             5 (dotimes (ca num)
             6  (let* ((str (read-line))
             7         (len (length str))
             8         (cmp 0)
             9         (i nil)
            10         (j nil))
            11   (dotimes (i (floor (/ (1+ len) 2)))
            12    (setf j (1- (- len i)))
            13    (when (char> (elt str i) (elt str j))
            14     (setf cmp 1))
            15    (when (char< (elt str i) (elt str j))
            16     (setf cmp -1))
            17    (setf (elt str j) (elt str i)))
            18   (when (<= cmp 0)
            19    (setf i (1- (floor (/ (1+ len) 2))))
            20    (setf j (if (oddp len) i (1+ i)))
            21    (do ()
            22     ((or (minusp i) (char< (elt str i) #\9)))
            23     (setf (elt str i) #\0)
            24     (setf (elt str j) #\0)
            25     (decf i)
            26     (incf j))
            27    (when (minusp i)
            28     (setf (elt str 0) #\1)
            29     (write-string str)
            30     (write-char #\1))
            31    (when (not (minusp i))
            32     (setf (elt str i) (digit-succ (elt str i)))
            33     (setf (elt str j) (elt str i))
            34     (write-string str)))
            35   (when (plusp cmp)
            36    (write-string str))
            37   (fresh-line))))
            38
            39


            posted on 2012-02-19 16:18 coreBugZJ 閱讀(409) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ACMAlgorithmLisp

            三上悠亚久久精品| 综合久久给合久久狠狠狠97色 | 伊人久久大香线蕉AV色婷婷色 | 亚洲国产精品成人久久蜜臀 | 欧美精品丝袜久久久中文字幕 | 中文字幕无码免费久久| 漂亮人妻被黑人久久精品| 久久精品国内一区二区三区| 国产精久久一区二区三区| 亚洲欧美日韩久久精品| 99久久超碰中文字幕伊人| 香蕉久久夜色精品国产尤物| 久久精品天天中文字幕人妻| 欧美国产精品久久高清| 久久青青草原综合伊人| 亚洲另类欧美综合久久图片区| 久久国产精品-国产精品| 欧美国产成人久久精品| 色综合久久久久网| 亚洲精品无码成人片久久| 久久久久亚洲AV无码专区网站| 久久久女人与动物群交毛片| 无码任你躁久久久久久久| 99热成人精品免费久久| 国内精品久久人妻互换| 无码八A片人妻少妇久久| 久久久久久青草大香综合精品| 国产精品视频久久久| 久久久噜噜噜久久熟女AA片| 香蕉久久久久久狠狠色| 欧美激情精品久久久久久久九九九| 99久久99久久精品国产片果冻| 欧美丰满熟妇BBB久久久| 中文字幕无码久久精品青草| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久亚洲精品视频| 亚洲国产成人久久综合碰碰动漫3d| 99久久久国产精品免费无卡顿| 国产欧美一区二区久久| 青草影院天堂男人久久| 一级做a爰片久久毛片16|