ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Java source code Sample: Print Different Asterisk Shapes in Recursion

Updated on February 22, 2013

These java source codes outputs different forms of Asterisks using recursion.

Recursion is another way to achieve looping in a program. It has two types, the direct and indirect recursion. However in this program I used direct recursion. Basically a recursive method has two cases, the base case and the general case. Base case is the one who stops the program in looping and the general case is where the calculation or codes implementation performed, it is also in general case where the method called itself. To have a glance on how the recursion works, here is the sample java source codes on outputting asterisk in different forms using recursion.

A Java source code: How to Output Asterisk in Different Forms Using Recursion



//main method

public class Main{

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter a number: ");

int n = input.nextInt();

Asterisk1 access = new Asterisk1();

access.asterisk2(n);

}

}

//java class

public class Asterisk1 {

private int count = 0;

public void asterisk1(int n) {

if(n==0) {

System.out.println();

}

else {

System.out.print("*");

asterisk1(n-1); } }

public void asterisk2( int n) {

if(n==0){

return; }

else {

asterisk1(n);

asterisk2(n-1);

}

}

}

Source: Craftila.com
Source: Craftila.com

This program will output the asterisk in this form. If the number 4 is entered the form will be like this.

****

***

**

*

2. A Java source code for another Asterisk Form

/*The following code will have the same method as the first but different in implementation*/ //main method

public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter a number: ");

int n = input.nextInt();

Asterisk1 access = new Asterisk1();

access.asterisk2(n,1);

}

}

// java class

public class Asterisk1 {

private int count = 0;

public void asterisk1(int n) {

if(n==0) {

System.out.println();

}

else {

System.out.print("*");

asterisk1(n-1);

}

}

public void asterisk3(int count,int m) {

if( count == 0) {

System.out.println();

} else {

asterisk1(m);

asterisk3(n-1,m+1);

}

}

}

The output of this code if number 4 is entered will be like this.

*

**

***

****


To get a form that would look like this,

****

***

**

*

*

**

***

****

3. Here is the other code.


//main method

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter a number: ");

int n = input.nextInt();

Asterisk1 access = new Asterisk1();

access.asterisk2(n); access.asterisk3(n,1);

}

}

// java class

public class Asterisk1 {

private int count = 0;

public void asterisk1(int n) {

if(n==0) { System.out.println();

} else {

System.out.print("*");

asterisk1(n-1);

}

}

public void asterisk2( int n) {

if(n==0) {

return;

} else {

asterisk1(n);

asterisk2(n-1);

}

}

public void asterisk3( int n,int m)

{ if( n == 0) {

System.out.println();

} else {

asterisk1(m);

asterisk3(n-1,m+1);

}

}

}

4. Lastly, to acquire a shape like this,

*

**

***

****

****

***

**

*

here is the code:

//main method

package prog_proj2;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.print("Enter a number: ");

int n = input.nextInt();

Asterisk1 access = new Asterisk1();

access.asterisk3(n); access.asterisk2(n);

}

}

//java class

public class Asterisk1 {

private int count = 0;

public static void asterisk1(int n) {

if(n==0) { System.out.println();

} else {

System.out.print("*");

asterisk1(n-1);

}

}

public void asterisk2( int n) {

if(n==0) { return;

} else {

asterisk1(n);

asterisk2(n-1);

}

}

public void asterisk3( int n) {

count++;

if( n == 0) {

return;

} else {

asterisk1(count);

asterisk3(n-1);

}

}

}

Comments

    0 of 8192 characters used
    Post Comment

    • profile image

      shengkit 3 years ago

      its nice but ,,,the problem that i need to solve,,will not appear..

    • profile image

      Titanicjohn Peter 2 years ago

      It's very useful site to beginners and students. but i have one doubt.

      can you print Rectangle Asterisk shapes into pyramid. i try it but many more errors show me. so write a coding and send the comment in your post i will see it

    • profile image

      dessie almineh 13 months ago

      i love java because of happyness of the course

    Click to Rate This Article