%I #38 Jun 26 2021 02:14:59
%S 0,1,2,3,4,5,6,7,8,9,9,11,11,11,11,11,11,11,11,11,11,11,22,22,22,22,
%T 22,22,22,22,22,22,22,33,33,33,33,33,33,33,33,33,33,33,44,44,44,44,44,
%U 44,44,44,44,44,44,55,55,55,55,55,55,55,55,55,55,55,66,66,66,66,66,66,66,66,66,66,66,77,77
%N Largest palindrome <= n.
%C Might be called the palindromic floor function.
%C Let P(n) = n with the second half of its digits replaced by the first half of the digits in reverse order. If P(n) <= n, then a(n) = P(n), else if n=10^k then a(n) = n-1, else a(n) = P(n-10^floor(d/2)), where d is the number of digits of n. - _M. F. Hasler_, Sep 08 2015
%C The largest differences of n - a(n) occur for n = m*R(2k) - 1, where 1 <= m <= 9 and R(k)=(10^k-1)/9. In this case, n - a(n) = 1.1*10^k - 1. - _M. F. Hasler_, Sep 05 2018
%H Reinhard Zumkeller, <a href="/A261423/b261423.txt">Table of n, a(n) for n = 0..10000</a>
%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/PalindromicNumber.html">Palindromic Number</a>
%H Wikipedia, <a href="http://www.wikipedia.org/wiki/Palindromic_number">Palindromic number</a>
%H <a href="/index/Pac#palindromes">Index entries for sequences related to palindromes</a>
%F n - a(n) < 1.1*10^floor(d/2), where d = floor(log_10(n)) + 1 is the number of digits of n. - _M. F. Hasler_, Sep 05 2018
%p # P has list of palindromes
%p palfloor:=proc(n) global P; local i;
%p for i from 1 to nops(P) do
%p if P[i]=n then return(n); fi;
%p if P[i]>n then return(P[i-1]); fi;
%p od:
%p end;
%t palQ[n_] := Block[{d = IntegerDigits@ n}, d == Reverse@ d]; Table[k = n;
%t While[Nand[palQ@ k, k > -1], k--]; k, {n, 0, 78}] (* _Michael De Vlieger_, Sep 09 2015 *)
%o (PARI) A261423(n,d=digits(n),m=sum(k=1,#d\2,d[k]*10^(k-1)))={if( n%10^(#d\2)<m, n==10^valuation(n,10)&&return(n-1); d=digits(n-=10^(#d\2) /*#digits may decrease!*/); sum(k=1,#d\2,d[k]*10^(k-1)), m)+n-n%10^(#d\2)} \\ _M. F. Hasler_, Sep 08 2015, minor edit on Sep 05 2018
%o (Haskell)
%o a261423 n = a261423_list !! n
%o a261423_list = tail a261914_list -- _Reinhard Zumkeller_, Sep 16 2015
%o (Python)
%o def P(n):
%o s = str(n); h = s[:(len(s)+1)//2]; return int(h + h[-1-len(s)%2::-1])
%o def a(n):
%o s = str(n)
%o if s == '1'+'0'*(len(s)-1) and n > 1: return n - 1
%o Pn = P(n)
%o return Pn if Pn <= n else P(n - 10**(len(s)//2))
%o print([a(n) for n in range(79)]) # _Michael S. Branicky_, Jun 25 2021
%Y Cf. A002113, A261424, A261914 (previous palindrome).
%Y Cf. A262038.
%Y Sequences related to palindromic floor and ceiling: A175298, A206913, A206914, A261423, A262038, and the large block of consecutive sequences beginning at A265509.
%Y A262257(n) = Levenshtein distance between n and a(n). - _Reinhard Zumkeller_, Sep 16 2015
%K nonn,base
%O 0,3
%A _N. J. A. Sloane_, Aug 28 2015