• # Learn When HTML/CSS Is Enough And Build An Expression Using E and Pi

Hello, checkiomates๐ฑโ๐ค!

From current digest you'll find out, that HTML and CSS have evolved a lot and can do some things pretty well so you don't need JS in Those cases. See an informative video talk about it. We are also releasing math mission about playing with e and pi constants and trying to compose them in a specific way to get a distinct float number.

๐กTIP

At every mission page, under the editor window, there is a terminal window. If you want to discover all CheckiO features, visit our tutorial. It's a longread, but it's worth it!

๐MISSION

In this challenge, you will be given a result, and your task is to find an arithmetic expression that uses only the numbers pi and e to yield that result. You can use addition, subtraction, multiplication, division, and exponentiation operations, and each number (pi and e) can appear at most two times. Parentheses are not allowed. If there are multiple solutions, return the one that requires fewer operations. If there are still multiple solutions, return the one that comes first alphabetically (without spaces). The calculated result must be equal with an error smaller than 1 x 10-10. If there is no solution for the input, return null. Non negative/positive symbol at the beginning is allowed.

```assert.strictEqual(checkio(5.85987448205), "e+pi");
assert.strictEqual(checkio(18.2958548951), "e**e+pi");
assert.strictEqual(checkio(47.6085189284), "e**e*pi");```

๐ARTICLE

If you've been building websites for a while you "know" that some things require JS and that's just the way it is. Turns out, spec writers and browser makers both are working hard to find common JS patterns and implementing them in CSS and HTML. In this video the author goes through common patterns, explain how they can be implemented in CSS and HTML, how that's better and what accessibility implications they have, both for features available today and feature available soon

๐ฉโ๐ปCODE SHOT

How do you think, what the following code does?

```function ????????(number: number, B: number): boolean {
let ar = [];
while (number > 0) {
ar.unshift(number % B);
number -= number % B;
number /= B;
}
return ar.every((c, i) => c == ar[ar.length - i - 1]);
}
```