<script>
var
dp = Array(100).fill().map(() => Array(10).fill(0).map(()=>Array(10).fill(0)));
function
countOfNumbers(digit , prev1 , prev2 , n) {
if
(digit == n + 1) {
return
1;
}
var
val = dp[digit][prev1][prev2];
if
(val != -1) {
return
val;
}
val = 0;
if
(digit == 1) {
for
(
var
i = (n == 1 ? 0 : 1); i <= 9; ++i) {
val += countOfNumbers(digit + 1, i, prev1, n);
}
}
else
if
(digit == 2) {
for
(
var
i = 0; i <= 9; ++i) {
val += countOfNumbers(digit + 1, i, prev1, n);
}
}
else
{
var
diff = Math.abs(prev2 - prev1);
for
(
var
i = 0; i <= 9; ++i) {
if
(Math.abs(prev1 - i) <= diff) {
val += countOfNumbers(digit + 1, i, prev1, n);
}
}
}
return
val;
}
function
countNumbersUtil(N) {
for
(
var
i = 0; i < 100; i++) {
for
(
var
j = 0; j < 10; j++) {
for
(
var
k = 0; k < 10; k++) {
dp[i][j][k] = -1;
}
}
}
document.write(countOfNumbers(1, 0, 0, N));
}
var
N = 3;
countNumbersUtil(N);
</script>