📜  披萨问题

📅  最后修改于: 2021-05-31 21:13:05             🧑  作者: Mango

给定整数N和可以切成小块的比萨饼,每次切割都应该是一条从比萨饼中心到其边界的直线。同样,任何两个切口之间的角度必须为正整数。如果适当的角度相等,则两部分相等。给定的披萨可以通过以下三种方式进行切割:

  1. 将披萨切成N等份
  2. 将比萨切成N个任意大小的块
  3. 把比萨切成N块,这样他们的两个都不相等

任务是找到是否可以以给定的N值以上述方式切比萨饼。如果可能,则打印1 ,否则,在所有情况下都打印0 ;如果可能,则打印111。

例子:

方法:

  • 仅当360可被N整除时,情况1才有可能。
  • 为了使情况2可行, N必须≤360
  • 情况3的理想解决方案是选择零件,使它们形成的角度分别为1、2、3,…。因此,为了使这种情况成为可能, (N *(N + 1))/ 2必须≤360

下面是上述方法的实现:

C++
// C++ implementation of the approach
#include 
using namespace std;
  
// Function to check if it is possible
// to cut the pizza in the given way
void cutPizza(int n)
{
    // Case 1
    cout << (360 % n == 0) ? "1" : "0";
  
    // Case 2
    cout << (n <= 360) ? "1" : "0";
  
    // Case 3
    cout << (((n * (n + 1)) / 2) <= 360) ? "1" : "0";
}
  
// Driver code
int main()
{
    int n = 7;
    cutPizza(n);
  
    return 0;
}


Java
// Java implementation of the approach 
class GFG
{
  
// Function to check if it is possible 
// to cut the pizza in the given way 
static void cutPizza(int n) 
{ 
    // Case 1 
    System.out.print( (360 % n == 0) ? "1" : "0"); 
  
    // Case 2 
    System.out.print( (n <= 360) ? "1" : "0"); 
  
    // Case 3 
    System.out.print( (((n * (n + 1)) / 2) <= 360) ? "1" : "0"); 
} 
  
// Driver code 
public static void main(String args[])
{ 
    int n = 7; 
    cutPizza(n); 
}
} 
  
// This code is contributed by Arnab Kundu


Python3
# Python3 implementation of the approach
  
# Function to check if it is possible
# to cut the pizza in the given way
def cutPizza(n):
  
    # Case 1
    if(360 % n == 0): 
        print("1", end = "") 
    else:
        print("0", end = "");
  
    # Case 2
    if(n <= 360):
        print("1", end = "") 
    else:
        print("0", end = "");
  
    # Case 3
    if(((n * (n + 1)) / 2) <= 360): 
        print("1", end = "")
    else:
        print("0", end = "");
  
  
# Driver code
n = 7;
cutPizza(n);
  
# This code is contributed
# by Akanksha Rai


C#
// C# implementation of the approach 
using System;
  
class GFG
{
  
// Function to check if it is possible 
// to cut the pizza in the given way 
static void cutPizza(int n) 
{ 
    // Case 1 
    Console.Write((360 % n == 0) ? "1" : "0"); 
  
    // Case 2 
    Console.Write((n <= 360) ? "1" : "0"); 
  
    // Case 3 
    Console.Write((((n * (n + 1)) / 2) <= 360) ? "1" : "0"); 
} 
  
// Driver code 
public static void Main(String []args)
{ 
    int n = 7; 
    cutPizza(n); 
}
} 
  
// This code is contributed by Arnab Kundu


PHP


输出:
011
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”