求n个幻数

幻数的定义是一个可以表示为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
喜欢就支持一下吧
点赞9 分享