Qn: Write the logic to print the triangle pattern as follows
  Type-1           Type-2
        1                1
      1 2              2 1
    1 2 3            3 2 1
  1 2 3 4          4 3 2 1
1 2 3 4 5        5 4 3 2 1

 Type-3           Type-4
1 2 3 4 5        5 4 3 2 1
  1 2 3 4          4 3 2 1
    1 2 3            3 2 1
      1 2              2 1
        1                1
-By Admin, Last Update On 30th May,2019 09:37 am

Type-1

மேலே கொடுக்கப்பட்டுள்ள type-1-ஐ நன்கு கவனித்தால். n=5 அதாவது number of rows. முதல் row-வில் ஒரு column, இரண்டாவது row-வில் இரண்டு column, இதுபோன்று, ஒவ்வொரு row-விற்கும் இணையான columns-ஐ பெற்றுள்ளது. அதோடு ஒவ்வொரு number-ம் print செய்வதற்கு முன்பாக blank space print செய்யப்பட்டுள்ளது. Type-1-ஐ கீழ்க்கண்டவாறு கவனியுங்கள்.

s s s s 1
s s s 1 2
s s 1 2 3
s 1 2 3 4
1 2 3 4 5

இதில் s என்பது blank space-ஐ குறிக்கும். முதலில் numbers எவ்வாறு print செய்யவேண்டும் என்ற logic-ஐ கொடுத்துவிட்டால், அதற்க்கு முன்பாக blank space-க்கான logic-ஐ கொடுப்பது மிகவும் எளிதானது. இப்பொழுது number-ஐ print செய்ய இரண்டு for() loop பயன்படுத்தபடுகிறது. முதல் for() loop எதனை row வரவேண்டும் என்பதர்க்ககவும். இரண்டாவது for() loop ஒவ்வொரு row-விழும் எதனை column வரவேண்டும் என்பதர்க்ககவும் பயன்படுத்தபடுகிறது. ஆகையால் தான் column-ஐ print செய்யகூடிய for() loop எப்பொழுதும், முதல் for() loop-க்கு உள்ளே கொடுக்கபடவேண்டும்.

for(int row=1;row<=n;row++){
    for(int col=1;col<=row;col++){
        System.out.print(col);
    }
    System.out.println();
}

row, 1-லிருந்து துவங்கி n-ல் முடியவேண்டும். அதேபோல் col, 1-லிருந்து துவங்கி row-ன் value என்னவோ அதில் தான் முடியவேண்டும். இவ்வாறு செய்யும்போதுதான் type-1-ல் உள்ளவாறு number print ஆகும்.

இப்பொழுது இந்த இரண்டு for() loop-களுக்கும் இடையில் blank space print செய்வதற்கான logic-ஐ கொடுத்துவிட்டால் நமக்கு தேவையான output கிடைத்துவிடும். இதில் முதல் row-ல் நான்கு space, இரண்டாவது row-ல் மூன்று space,மூன்றாவது row-ல் இரண்டு space,நான்காவது row-ல் ஒரு space, ஐந்தாவது row-ல் 0 space. ஆகவே space ஆனது row-ஐ பொருத்து குறைந்துகொண்டே வருகிறது.

இவ்வாறு print செய்ய for() loop-ஆனது 1-ல் துவங்கி (n-row)-ல் முடியவேண்டும். ஏனெனில் முதல் row-ல் நான்கு space வரவேண்டும். ie n=5 and row=1 so (5-1)=4, இதேபோல் இரண்டாவது row-ல் மூன்று space வரவேண்டும். ie n=5 and row=2 (5-2)=3, இதே போன்று ஒவ்வொரு row-விழும் இவ்வாறு print செய்துவிடும்.

for(int row=1;row<=n;row++){
    for(int s=1;s<=(n-row);s++){
        System.out.print(" ");
    }
    for(int col=1;col<=row;col++){
        System.out.print(col);
    }
    System.out.println();
}

Complete Program

import java.util.Scanner;
public class PrintPattern{
  public static void main(String args[]){
    Scanner sn=new Scanner(System.in);
    System.out.print("Enter how many rows you want: ");
    int n=sn.nextInt();
    for(int row=1;row<=n;row++){
      for(int s=1;s<=(n-row);s++){
        System.out.print(" ");
      }
      for(int col=1;col<=row;col++){
        System.out.print(col);
      }
      System.out.println();
    }
  }
}
Enter how many rows you want: 5
        1
      1 2
    1 2 3
  1 2 3 4
1 2 3 4 5

"col" variable print செய்வதற்கு பதிலாக "*" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்

        *
      * *
    * * *
  * * * *
* * * * *

Type-2

Type-2ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் col ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக row-ன் value-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும்.

Complete Program

import java.util.Scanner;
public class PrintPattern{
    public static void main(String args[]){
        Scanner sn=new Scanner(System.in);
        System.out.print("Enter how many rows you want: ");
        int n=sn.nextInt();
        for(int row=1;row<=n;row++){
            for(int s=1;s<=(n-row);s++){
                System.out.print(" ");
            }
            for(int col=row;col>=1;col--){
                System.out.print(col);
            }
            System.out.println();
        }
    }
}
Enter how many rows you want: 5
        1
      2 1
    3 2 1
  4 3 2 1
5 4 3 2 1

"col" variable print செய்வதற்கு பதிலாக "$" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்

        $
      $ $
    $ $ $
  $ $ $ $
$ $ $ $ $

Type-3

Type-3ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் row ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக n-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும். மற்றவையெல்லாம் தானாகவே மாற்றிக்கொள்ளும். ஏனெனில் மற்ற இரண்டு for() loop-களும் row-ன் value-ஐ வைத்துதான் செயல்படுகிறது. ஆகையால் row-ன் value மாறினாலே இவற்றின் value-களும் தானாக மாறிக்கொள்ளும்.

import java.util.Scanner;
public class PrintPattern{
  public static void main(String args[]){
    Scanner sn=new Scanner(System.in);
    System.out.print("Enter how many rows you want: ");
    int n=sn.nextInt();
    for(int row=n;row>=1;row--){
        for(int s=1;s<=(n-row);s++){
            System.out.print(" ");
        }
        for(int col=1;col<=row;col++){
            System.out.print(col);
        }
        System.out.println();
    }
  }
}
Enter how many rows you want: 5
1 2 3 4 5
  1 2 3 4
    1 2 3
      1 2
        1

"col" variable print செய்வதற்கு பதிலாக "*" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்

* * * * *
  * * * *
    * * *
      * *
        *

Type-4

Type-4ம் Type-1 program-ல் உள்ள அதே logic தான். ஆனால் row ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக n-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும். அதேபோல் col ஆனது 1-லிருந்து துவங்குவதற்கு பதிலாக row-ன் value-லிருந்து துவங்கி 1-ல் முடிக்கவேண்டும்.

import java.util.Scanner;
public class PrintPattern {
  public static void main(String[] args) {
    Scanner sn = new Scanner(System.in);
    System.out.print("Enter how many rows you want: ");
    int n = sn.nextInt();
    int row, col, s;
    for (row = n; row >=1; row--) {
        for (s = 1; s <= (n - row); s++) {
            System.out.print(" ");
        }
        for (col = row; col >= 1; col--) {
            System.out.print(col);
        }
        System.out.println();
    }
  }

}
Enter how many rows you want: 5
5 4 3 2 1
  4 3 2 1
    3 2 1
      2 1
        1

"col" variable print செய்வதற்கு பதிலாக "@" ஐ print செய்தால் கீழே உள்ள output கிடைத்துவிடும்

@ @ @ @ @
  @ @ @ @
    @ @ @
      @ @
        @

Pgcomments

Comments