Write a java program that reads a number N as input and disp
Write a java program that reads a number N as input and displays the following output using stacks with parameters.
Example o Input: Enter N: o Output: 5Solution
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Stacks {
public static void main(String[] args) throws IOException {
// used variables
BufferedReader reader;
String input,outerSpaces,innerSpaces;
Integer number;
// taking input
System.out.print(\"Enter N : \");
reader = new BufferedReader(new InputStreamReader(System.in));
input = reader.readLine();
number = Integer.parseInt(input);
// printing upper stack
for(int i=1;i<number;i++){
outerSpaces = getOuterSpaces(i);
innerSpaces = getInnerSpaces(number, i);
System.out.print(outerSpaces);
System.out.print(i);
System.out.print(innerSpaces);
if(i != number){
System.out.print(i);
}
System.out.print(outerSpaces);
System.out.println();
}
// printing lower stack ( simply reverse loop for above block )
for(int i=number;i>0;i--){
outerSpaces = getOuterSpaces(i);
innerSpaces = getInnerSpaces(number, i);
System.out.print(outerSpaces);
System.out.print(i);
System.out.print(innerSpaces);
if(i != number){
System.out.print(i);
}
System.out.print(outerSpaces);
System.out.println();
}
}
public static String getOuterSpaces(int offset){
StringBuffer buffer = new StringBuffer(\"\");
for(int i=0;i<offset-1;i++){
buffer.append(\" \");
}
return buffer.toString();
}
public static String getInnerSpaces(int stackSize,int offset){
StringBuffer buffer = new StringBuffer(\"\");
for(int i=0;i<(stackSize-offset)*2;i++){
buffer.append(\" \");
}
return buffer.toString();
}
}

