Sandy is a little girl who spends her free time playing with her friends. Unfortunately, Sandy broke her wristwatch a week ago. Now she is trying a new trick using the sunlight to guess the time. But this trick is useful only when the sky isn’t cloudy. Your task is to help Sandy by writing a program which shows how bright the sun is at the moment.
You are given an integer number N (always odd), corresponding to the width and height of the sun and the length of the horizontal and vertical sunbeams. The diagonal sunbeams have length equal to N – 1.
Input:
The input data should be read from the console.
- On the only input line you will be given an integer N - the size of the sun.
The input data will always be valid and in the format described. There is no need to check it explicitly.
Output:
The output should be printed on the console. Use the “*” (asterisk) to mark the sun and the sunbeams and “.” (dot) for the rest. Follow the examples below.
Constraints:
- N will always be a positive odd number in the range [3 … 33].
- Allowed working time for your program: 0.1 seconds. Allowed memory: 16 MB.
Examples:
You need to use new string() inside the Console.WriteLine - you can read more here: https://www.dotnetperls.com/string-constructor
Also, here is how I divide the task - into 7 parts - and then solve (draw) it piece by piece. You can read the comments in the code - it is explained there.
See the pic - I made for you 🙂:
Here is my answer to your question (the code):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; class Sunlight { static void Main() { int n = int.Parse(Console.ReadLine()); Console.WriteLine("{0}*{0}", new string('.', (((n * 3) - 1) / 2)));//PART 1 (STATIC) for (int i = 0; i < (n - 1); i++)//PART 2 (DYNAMIC) { Console.WriteLine("{0}*{1}*{1}*{0}", new string('.', i + 1), new string('.', (((n * 3) / 2) - 2) - i)); } for (int i = 0; i < (n / 2); i++)//PART 3 (DYNAMIC) { Console.WriteLine("{0}{1}{0}", new string('.', n), new string('*', n)); } Console.WriteLine("{0}", new string('*', n * 3));//PART 4 (STATIC) for (int i = 0; i < (n / 2); i++)//PART 5 (DYNAMIC) - THE SAME AS PART 3 { Console.WriteLine("{0}{1}{0}", new string('.', n), new string('*', n)); } for (int i = 0; i < (n - 1); i++)//PART 6 (DYNAMIC) { Console.WriteLine("{0}*{1}*{1}*{0}", new string('.', (n - 1) - i), new string('.', (n / 2) + i)); } Console.WriteLine("{0}*{0}", new string('.', (((n * 3) - 1) / 2)));//PART 7 (STATIC) - THE SAME AS PART 1 } }