user5491697
user5491697

Reputation:

Print Star Triangle using loops

how to print star equilateral triangle like in the below pattern?

I tried this but am not getting the required pattern

for (int i = 1; i <= number; i++)         
{
    for (int j = 1; j <= number - i; j++)
    {
        Console.Write(" ");
    }
    for (int k = 1; k <= i; k++)
    {
        Console.Write(" *");
        if (k > 3)
        {
            for (int l = 1; l <= k - 2; l++)
            {
                Console.Write(" ");
            }

        }
    }
    Console.WriteLine(" ");
}

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

Upvotes: 0

Views: 1794

Answers (5)

Using Java

Ex:

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

Code:

int numberOfRows = 5;
    
for(int i=0; i<numberOfRows; i++)
{
    for(int a=0; a<=numberOfRows; a++)
    {
        int x = numberOfRows - i;
            
        if (a > x) {
           if (x==(a-1) || i==(numberOfRows-1)) {
               System.out.print("*");
           } else {
               System.out.print(" ");
           }
        } else {
           System.out.print(" ");
        }
    }
                    
    for(int b=0; b<=i; b++)
    {
        if(b==i || i==(numberOfRows-1)) {
            System.out.print("*");
        } else {
            System.out.print(" ");
        }
    }

    System.out.print("\n");
}

Upvotes: 0

ipavlu
ipavlu

Reputation: 1649

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Triangle
    {
        class Program
        {
            static string Line(int i, int n, string star, string space)
            {
                string rslt = String.Empty.PadRight(n - 1 - i, ' ') + star;
                if (i == 0) return rslt;
                for (int j = 0; j < (i > 0 ? 2 * i - 1 : 0) / 2; j++ rslt += space + (i >= (n - 1) ? star : space)) ;
                rslt += space + star;
                return rslt;
            }

            static void Main(string[] args)
            {
                int n = 40;
                for (int i = 0; i < n; i++)
                {
                    Console.WriteLine(Line(i,n, "*", " "));
                }
                Console.ReadLine();
            }
        }
    }

Upvotes: 1

Sateesh Pagolu
Sateesh Pagolu

Reputation: 9606

A different approach

int number = 5;
var pattern = "*";
for(int i=0;i<number;i++)
{           
    Console.WriteLine(pattern.PadLeft(number-i,' ')
                      +((i==0)?"":(pattern.PadLeft((i)*2,' '))));
}

Upvotes: 1

SuperPrograman
SuperPrograman

Reputation: 1822

Here's a fun way to do this

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        int number = 5;
        for (int i = 0; i < number; i++)
        {
            Console.Write(string.Concat(Enumerable.Repeat(" ", number - i))); // Left Spaces
            Console.Write("*"); // Left side
            if (i != 0) // If not first line 
            {
                Console.Write(string.Concat(Enumerable.Repeat(" ", i * 2 - 1))); // Middle Spaces
                Console.Write("*"); // Right side
            }
            Console.WriteLine();
        }

        for (int i = 0; i <= number; i++)
            Console.Write("* "); // Bottom
    }
}

output

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

Upvotes: 1

RNA Team
RNA Team

Reputation: 279

Try this

using System;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = 6;
            string toDisplay = "";

            for (int i = 1; i <= number; i++)
            {
                for (int j = 1; j <= number - i; j++) Console.Write(" ");
                for (int k = 1; k <= i; k++)
                {
                    toDisplay = (k == 1 || k == i && i != number)
                                ?" *"
                                : (i == number)
                                ? " *"
                                : "  ";
                    Console.Write(toDisplay);
                }

                Console.WriteLine("");
            }
            Console.ReadLine();
        }
    }
}


//////////////////////////////////
      *
     * *
    *   *
   *     *
  *       *
 * * * * * *


////////////////////////////////////

Upvotes: 1

Related Questions