- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Beautiful Arrangement of Numbers in JavaScript
Beautiful Arrangement:
Suppose we have num integers from 1 to num. We define a beautiful arrangement as an array that is constructed by these num numbers successfully if one of the following is true for the ith position (1 ≤ i ≤ N) in this array −
The number at the ith position is divisible by i.
i is divisible by the number at the ith position.
Problem
We are required to write a JavaScript function that takes in a number, num, and returns the count of beautiful arrangements we can construct for num.
For example, if the input to the function is −
const input = 2
Then the output should be −
const output = 2
Output Explanation
The first beautiful arrangement is [1,2]:
The second beautiful arrangement is [2,1]:
Example
The code for this will be −
const num = 4; const countArrangements = (num = 1) => { let ans = 0 const recur = (curr, vis) => { if (curr === 1){ ans++; }else{ for (let i = num; i; i--) { let possible = (i % curr === 0 || curr % i === 0); let visited = vis & 1 << i; if (possible && !visited){ recur(curr-1, vis | 1 << i); } } } }; recur(num, 0); return ans; }; console.log(countArrangements(num));
Code Explanation:
We define a result variable (ans) and then create a recursive function to navigate the multiple branching possibilities. This recursive function will only need two arguments: which number are we currently looking to place (curr) and which spots have already been visited (vis).
Output
And the output in the console will be −
8
To Continue Learning Please Login
Login with Google