📜  N割后计算圆

📅  最后修改于: 2021-05-31 16:43:07             🧑  作者: Mango

给定整数N,其中1 \leq N \leq 10^{18}  。任务是打印带有N个切口的圆的计数,其中每个切口都通过给定圆的中心。
例子

Input : N = 2
Output : 4

Input : N = 100
Output : 200

方法:仅通过观察即可轻松解决此问题。由于每个切口都经过中心,因此每个切口都会产生两个新片段。
让我们看看上面直觉是如何工作的。

  • 初切时,我们有2个不同的圆。
  • 在第二次切割时,我们从先前的2个圆中又得到2个不同的圆。
  • 在第三次切割时,我们又从彼此相反的前2个工件中又选出2个新的不同工件。

N圈切入中心

这样,我们进行了N次切割,以得到N次切割后的总件数。
下面是上述方法的实现:

C++
// C++ program to find number of pieces
// of circle after N cuts
 
#include 
using namespace std;
 
// Function to find number of pieces
// of circle after N cuts
int countPieces(int N)
{
    return 2 * N;
}
 
// Driver program
int main()
{
    int N = 100;
 
    cout << countPieces(N);
 
    return 0;
}


Java
// Java program to find number of pieces
// of circle after N cuts
import java.util.*;
 
class solution
{
 
// Function to find number of pieces
// of circle after N cuts
static int countPieces(int N)
{
    return 2 * N;
}
 
// Driver program
public static void main(String args[])
{
    int N = 100;
 
    System.out.println(countPieces(N));
 
}
 
}


Python3
# Python program to find number
# of pieces of circle after N cuts
 
# Function to find number of
# pieces of circle after N cuts
def countPieces(N):
    return 2 * N
 
# Driver Code
N = 100
 
print(countPieces(N))
 
# This code is contributed by
# Sanjit_Prasad


C#
// C# program to find number of pieces
// of circle after N cuts
 
class solution
{
 
// Function to find number of pieces
// of circle after N cuts
static int countPieces(int N)
{
    return 2 * N;
}
 
// Driver program
static void Main()
{
    int N = 100;
 
    System.Console.WriteLine(countPieces(N));
 
}
 
}
// This code is contributed by mits


PHP


Javascript


输出:
200

时间复杂度: O(1)