Pancake Number in Java

In this section, we will discuss what is pancake number and also create Java programs with different approaches to find the pancake number. The pancake number program frequently asked in Java coding interviews and academics.

Pancake Number

A pancake number Pj represents the maximum number of pieces of a circle or pancake that can be divided using j number of cuts. Pancake numbers are also known as lazy caterer numbers, more formally it is known as central polygonal numbers.

Mathematically, the pancake number Pj is represented as:

Pancake Number in Java

The following diagram shows the pancake numbers for the values j = 0 to j = 5.

Pancake Number in Java

Pancake Number Java Program

The following code shows the implementation of the pancake numbers using the mathematical formula defined above.

FileName: PancakeNumberExample.java

Output:

For j = 0, the pancake number is: 1
For j = 1, the pancake number is: 2
For j = 2, the pancake number is: 4
For j = 3, the pancake number is: 7
For j = 4, the pancake number is: 11
For j = 5, the pancake number is: 16
For j = 6, the pancake number is: 22
For j = 7, the pancake number is: 29
For j = 8, the pancake number is: 37
For j = 9, the pancake number is: 46

Pancake Number Using Combination

The pancake numbers can also be obtained using combinations. Using combinations, the pancake numbers are defined as:

Pj = 0C0 = 1, for j = 0

Pj = 1C0 + 1C1 = 1 + 1 = 2, for j = 1

For j >= 2,

Pj = jC0 + jC1 + jC2

Thus,

For j = 2,

P2 = 2C0 + 2C1 + 2C2 = 1 + 2 + 1 = 4

For j = 3,

P3 = 3C0 + 3C1 + 3C2 = 1 + 3 + 3 = 7

For j = 4,

P4 = 4C0 + 4C1 + 4C2 = 1 + 4 + 6 = 11

For j = 5,

P5 = 5C0 + 5C1 + 5C2 = 1 + 5 + 10 = 16

Combining the above formula for j = 0, 1, and >= 2, we get

Pj = 1, for j = 0, and

Pj = j + 1C2 + 1, for j >= 1

Thus,

P0 = 1

P1 = 1 + 1C2 + 1 = 2C2 + 1 = 1 + 1 = 2

P2 = 2 + 1C2 + 1 = 3C2 + 1 = 3 + 1 = 4

P3 = 3 + 1C2 + 1 = 4C2 + 1 = 6 + 1 = 7

Pancake Number: Iterative Approach

Let's implement the above combination formula to compute the pancake numbers.

FileName: PancakeNumberExample1.java

Output:

For j = 0, the pancake number is: 1
For j = 1, the pancake number is: 2
For j = 2, the pancake number is: 4
For j = 3, the pancake number is: 7
For j = 4, the pancake number is: 11
For j = 5, the pancake number is: 16
For j = 6, the pancake number is: 22
For j = 7, the pancake number is: 29
For j = 8, the pancake number is: 37
For j = 9, the pancake number is: 46

Pancake Number: Recursive Approach

The combination formula can also be implemented using recursion. The following program shows the same.

FileName: PancakeNumberExample2.java

Output:

For j = 0, the pancake number is: 1
For j = 1, the pancake number is: 2
For j = 2, the pancake number is: 4
For j = 3, the pancake number is: 7
For j = 4, the pancake number is: 11
For j = 5, the pancake number is: 16
For j = 6, the pancake number is: 22
For j = 7, the pancake number is: 29
For j = 8, the pancake number is: 37
For j = 9, the pancake number is: 46