卡罗尔数是形式为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