Javascript程序检查是否所有数组元素都可以通过旋转数字转换为普罗尼克数
给定一个大小为N的数组arr[] ,任务是检查是否可以通过将数组元素的数字旋转任意次数来将所有数组元素转换为普罗尼克数。
例子:
Input: {321, 402, 246, 299}
Output: True
Explanation:
arr[0] → Right rotation once modifies arr[0] to 132 (= 11 × 12).
arr[1] → Right rotation once modifies arr[0] to 240 (= 15 × 16).
arr[2] → Right rotation twice modifies arr[2] to 462 (= 21 × 22).
arr[3] → Right rotation twice modifies arr[3] to 992 (= 31 × 32).
Input: {433, 653, 402, 186}
Output: False
解决方法:按照以下步骤解决问题:
- 遍历数组并检查每个数组元素,是否可以将其转换为普罗尼克数。
- 对于每个数组元素,应用所有可能的旋转并在每次旋转后检查生成的数字是否为 pronic。
- 如果无法将任何数组元素转换为普罗尼克数,请打印“False” 。
- 否则,打印“True” 。
下面是上述方法的实现:
Javascript
输出:
True
时间复杂度: O(N 3/2 )
辅助空间: O(1)
有关详细信息,请参阅有关检查所有数组元素是否可以通过旋转数字转换为普罗尼克数的完整文章!