cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A235049 Subtract one from each nonzero digit in decimal representation of n.

This page as a plain text file.
%I A235049 #23 Jan 13 2023 11:05:01
%S A235049 0,0,1,2,3,4,5,6,7,8,0,0,1,2,3,4,5,6,7,8,10,10,11,12,13,14,15,16,17,
%T A235049 18,20,20,21,22,23,24,25,26,27,28,30,30,31,32,33,34,35,36,37,38,40,40,
%U A235049 41,42,43,44,45,46,47,48,50,50,51,52,53,54,55,56,57,58,60
%N A235049 Subtract one from each nonzero digit in decimal representation of n.
%C A235049 Contains exactly the same terms as A007095, except that each occurs an infinite number of times.
%C A235049 A102683(a(n)) = 0. - _Reinhard Zumkeller_, Apr 16 2014
%H A235049 Antti Karttunen, <a href="/A235049/b235049.txt">Table of n, a(n) for n = 0..10000</a>
%H A235049 <a href="/index/De#decimal_expansion">Index entries for sequences related to decimal expansion of n</a>
%F A235049 a(0) = 0, and for n>=1, if n = 0 modulo 10, a(n) = 10*a(n/10), otherwise a(n) = 10*a(floor(n/10)) + (n modulo 10) - 1.
%e A235049 Subtracting one from each nonzero digit of '9', we get 8, thus a(9)=8. Doing same for '10' results '00' thus a(10)=0. For '12', this results '01', thus a(12)=1.
%t A235049 a[n_] := FromDigits[If[#>0, #-1, #]& /@ IntegerDigits[n]];
%t A235049 Table[a[n], {n, 0, 100}] (* _Jean-François Alcover_, Jan 13 2023 *)
%o A235049 (MIT/GNU Scheme, two implementations)
%o A235049 (define (A235049 n) (let loop ((z 0) (i 0) (n n)) (if (zero? n) z (let ((d (modulo n 10))) (loop (+ z (* (expt 10 i) (if (zero? d) d (- d 1)))) (1+ i) (floor->exact (/ n 10)))))))
%o A235049 ;; As a recurrence, using memoization macro definec from _Antti Karttunen_'s IntSeq-library:
%o A235049 (definec (A235049 n) (if (zero? n) n (let ((d (modulo n 10))) (+ (* 10 (A235049 (floor->exact (/ n 10)))) (if (zero? d) d (- d 1))))))
%o A235049 (Haskell)
%o A235049 a235049 x = if x == 0 then 0 else 10 * a235049 x' + max 0 (d - 1)
%o A235049             where (x', d) = divMod x 10
%o A235049 -- _Reinhard Zumkeller_, Apr 16 2014
%Y A235049 Cf. A007095.
%K A235049 nonn,easy,base,look
%O A235049 0,4
%A A235049 _Antti Karttunen_, Apr 14 2014