📜  N割后计算圆

📅  最后修改于: 2021-04-24 15:05:05             🧑  作者: 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


输出:
200

时间复杂度: O(1)