নেস্টেড for লুপ ব্যবহার করে কনসোলে ডায়ামন্ড আকার প্রিন্ট করা যায়। তিনটি জিনিস কন্ট্রোল করতে হয়: রো সংখ্যা, প্রতিটি রোয়ে কতগুলো সিম্বল, এবং কতগুলো স্পেস।
এলগরিদম
- টোটাল রো
n(উদাহরণ: ৫) - উপরের হাফ: রো ১ থেকে n — স্পেস কমে, স্টার বড়ে
- নিচের হাফ: রো n+1 থেকে 2n-1 — স্পেস বড়ে, স্টার কমে
সম্পূর্ণ উদাহরণ
using System;
class DiamondPrintDemo
{
public static void Main()
{
int rows = 5; // ডায়ামন্ডের আধা উচ্চতা
char symbol = '$'; // প্রিন্ট করার সিম্বল
// উপরের হাফ (রো ১ থেকে rows)
for (int i = 1; i <= rows; i++)
{
// লিডিং স্পেস
for (int s = 0; s < rows - i; s++)
Console.Write(" ");
// সিম্বল (২*i - 1 টি)
for (int s = 0; s < 2 * i - 1; s++)
Console.Write(symbol);
Console.WriteLine();
}
// নিচের হাফ (রো rows-1 থেকে ১)
for (int i = rows - 1; i >= 1; i--)
{
for (int s = 0; s < rows - i; s++)
Console.Write(" ");
for (int s = 0; s < 2 * i - 1; s++)
Console.Write(symbol);
Console.WriteLine();
}
}
}
আউটপুট (rows=5, symbol=$)
$
$$$
$$$$$
$$$$$$$
$$$$$$$$$
$$$$$$$
$$$$$
$$$
$
জেনেরিক মেথড (যেকোনো সিম্বল, যেকোনো সাইজ)
public static void PrintDiamond(int rows, char symbol = '*')
{
// উপরের অংশ
for (int i = 1; i <= rows; i++)
Console.WriteLine(new string(' ', rows - i) + new string(symbol, 2 * i - 1));
// নিচের অংশ
for (int i = rows - 1; i >= 1; i--)
Console.WriteLine(new string(' ', rows - i) + new string(symbol, 2 * i - 1));
}
টিপস
new string(char, count)ব্যবহার করে রিপিটেড ক্যারেক্টার তৈরি করুন (লুপ ছাড়া)।- ইভেন রো সংখ্যায় ডায়ামন্ড সিমেট্রিকাল নাও হতে পারে — অড রো রিকমেন্ডেড।