幻数的定义是一个可以表示为5的幂或5的唯一幂之和的数。前几个数字是5,25,30(5+25),125,130(125+5)…。 写一个函数来求第n个幻数。 例子:
null
Input: n = 2Output: 25Input: n = 5Output: 130
如果我们仔细注意,幻数可以表示为001、010、011、100、101、110等,其中001是0*pow(5,3)+0*pow(5,2)+1*pow(5,1)。所以基本上我们需要为给定的整数n中的每一位加上5的幂。 下面是基于这个想法的实现。
C++
// C++ program to find nth magic number #include <bits/stdc++.h> using namespace std; // Function to find nth magic number int nthMagicNo( int n) { int pow = 1, answer = 0; // Go through every bit of n while (n) { pow = pow *5; // If last bit of n is set if (n & 1) answer += pow ; // proceed to next bit n >>= 1; // or n = n/2 } return answer; } // Driver program to test above function int main() { int n = 5; cout << "nth magic number is " << nthMagicNo(n) << endl; return 0; } |
JAVA
// Java program to find nth // magic number import java.io.*; class GFG { // Function to find nth magic number static int nthMagicNo( int n) { int pow = 1 , answer = 0 ; // Go through every bit of n while (n != 0 ) { pow = pow* 5 ; // If last bit of n is set if (( int )(n & 1 ) == 1 ) answer += pow; // proceed to next bit // or n = n/2 n >>= 1 ; } return answer; } // Driver program to test // above function public static void main(String[] args) { int n = 5 ; System.out.println( "nth magic" + " number is " + nthMagicNo(n)); } } // This code is contributed by // prerna saini |
Python3
# Python program to find nth magic number # Function to find nth magic number def nthMagicNo(n): pow = 1 answer = 0 # Go through every bit of n while (n): pow = pow * 5 # If last bit of n is set if (n & 1 ): answer + = pow # proceed to next bit n >> = 1 # or n = n/2 return answer # Driver program to test above function n = 5 print ( "nth magic number is" , nthMagicNo(n)) # This code is contributed by # Smitha Dinesh Semwal |
C#
// C# program to find nth // magic number using System; public class GFG { // Function to find nth magic number static int nthMagicNo( int n) { int pow = 1, answer = 0; // Go through every bit of n while (n != 0) { pow = pow * 5; // If last bit of n is set if (( int )(n & 1) == 1) answer += pow; // proceed to next bit // or n = n/2 n >>= 1; } return answer; } // Driver Code public static void Main() { int n = 5; Console.WriteLine( "nth magic" + " number is " + nthMagicNo(n)); } } // This code is contributed by Sam007 |
PHP
<?php // PHP program to find nth // magic number // Function to find nth // magic number function nthMagicNo( $n ) { $pow = 1; $answer = 0; // Go through every bit of n while ( $n ) { $pow = $pow * 5; // If last bit of n is set if ( $n & 1) $answer += $pow ; // proceed to next bit $n >>= 1; // or $n = $n/2 } return $answer ; } // Driver Code $n = 5; echo "nth magic number is " , nthMagicNo( $n ), "" ; // This code is contributed by Ajit. ?> |
Javascript
<script> // Javascript program to find nth // magic number // Function to find nth magic number function nthMagicNo(n) { let pow = 1, answer = 0; // Go through every bit of n while (n != 0) { pow = pow * 5; // If last bit of n is set if ((n & 1) == 1) answer += pow; // proceed to next bit // or n = n/2 n >>= 1; } return answer; } let n = 5; document.write( "nth magic" + " number is " + nthMagicNo(n)); </script> |
输出:
nth magic number is 130
感谢曼拉辛格提出上述解决方案。
本文由 阿比 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END