给定整数N和可以切成小块的比萨饼,每次切割都应该是一条从比萨饼中心到其边界的直线。同样,任何两个切口之间的角度必须为正整数。如果适当的角度相等,则两部分相等。给定的披萨可以通过以下三种方式进行切割:
- 将披萨切成N等份。
- 将比萨切成N个任意大小的块。
- 把比萨切成N块,这样他们的两个都不相等。
任务是找到是否可以以给定的N值以上述方式切比萨饼。如果可能,则打印1 ,否则,在所有情况下都打印0 ;如果可能,则打印111。
例子:
Input: N = 4
Output: 1 1 1
Case 1: All four pieces can have angle = 90
Case 2: Same cut as Case 1
Case 3: 1, 2, 3 and 354 are the respective angles of the four pieces cut.
Input: N = 7
Output: 0 1 1
方法:
- 仅当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等的更多准备工作,请参阅“完整面试准备课程” 。