📜  卡罗尔编号

📅  最后修改于: 2021-04-23 20:03:04             🧑  作者: Mango

卡罗尔数是形式为4 n – 2 (n + 1) – 1的整数。等效公式为(2 n -1) 2 – 2。
一个有趣的财产:
对于n> 2,第n个卡罗尔数的二进制表示形式是n-2个连续的1,中间的单个零,以及n + 1个以上连续的1。例如,n = 4颂歌数是223,二进制223是11011111,这里n-2 = 4-2 = 2个连续的开始,然后中间是0,然后n + 1 = 4 + 1 = 5个连续的。
给定数字n,任务是找到第n个卡罗尔编号。首先,很少有颂歌编号是1、7、47、223、959等。
例子 :

Input : n = 2
Output: 7

Input : n = 4
Output: 223
C++
// C++ program to find n'th Carol number
#include 
using namespace std;
 
// Function to find n'th carol number
int carol(int n)
{
    int result = pow(2, n) - 1;
    return result * result - 2;
}
 
// Driver program to ru the case
int main()
{
    int n = 4;
    cout << carol(n);
    return 0;
}


Python
# Python program to find n'th Carol number
def carol(n):
    # a**b is a ^ b in python
    result = (2**n) - 1
    return result * result - 2
 
# driver program to run the case
n = 4
print carol(n)


Java
/* Java program to find n'th Carol number */
class GFG {
    static int carol(int n)
    {
        double tmp = Math.pow(2, n) - 1;
        return (int)tmp;
    }
 
    public static void main(String[] args)
    {
        int n = 4;
        System.out.println(carol(n));
    }
}


C#
/* C# program to find n'th Carol number */
using System;
 
class GFG {
    static int carol(int n)
    {
        int result = (int)Math.Pow(2, n) - 1;
        return result * result - 2;
    }
 
    // Driver code
    public static void Main()
    {
        int n = 4;
        Console.WriteLine(carol(n));
    }
}
 
// This code is contributed by vt_m.


PHP


Javascript


输出 :

223