C# Fundamentals 20112012 Part 1 – Test Exam

Условията на задачите може да намерите в:
BGCoder или в Студетската Система на Телерик.

Всички мои решения са искарали резултат 100/100.

Проверка на вашите решения може да направите в BGCoder, като преди това се изисква регистрация.

1.Math Expression

Обяснение: Прочитам n, m и p от конзолата. След това просто разделям формулата на няколко части, изчислявам всяка част и накрая ги сливам.

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

namespace _1.MathExpression
{
    class Program
    {
        static void Main(string[] args)
        {
            decimal n = decimal.Parse(Console.ReadLine());
            decimal m = decimal.Parse(Console.ReadLine());
            decimal p = decimal.Parse(Console.ReadLine());

            decimal numerator = (n * n) + (1 / (m * p)) + 1337;
            decimal denominator = n - (128.523123123m * p);

            int modValue = ((int)m) % 180;
            decimal sinValue = (decimal)Math.Sin(modValue);
            decimal fraction = (numerator / denominator) + sinValue;

            Console.WriteLine("{0:0.000000}", fraction);
        }
    }
}

2.Least Majority Multiple

Обяснение: Прочитам 5те числа от конзолата. Декларирам си две променливи number и counter. След това, в един безкраен цикъл, проверявам дали number се дели, без остатък, на някое от останалите числа. Ако това условие е изпълнено, брояча (counter) увеличава стойността си с 1. Ако брояча е по-малък от 3, което означава че number не се дели на поне 3 от числата, counter се нулича, а number се увеличава с 1, след което цикъла се завърта отново. Ако брояча е по-голям или равен на 3, което означава че number се дели на поне 3 от числата, принтирваме стойността на number и спираме въртенето на цикъла с ключовата дума break.

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

namespace _2.LeastMajorityMultiple
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            int c = int.Parse(Console.ReadLine());
            int d = int.Parse(Console.ReadLine());
            int e = int.Parse(Console.ReadLine());

            int number = 1;
            int counter = 0;

            while (true)
            {
                if (number % a == 0)
                {
                    counter++;
                }
                if (number % b == 0)
                {
                    counter++;
                }
                if (number % c == 0)
                {
                    counter++;
                }
                if (number % d == 0)
                {
                    counter++;
                }
                if (number % e == 0)
                {
                    counter++;
                }

                if (counter < 3)
                {
                    counter = 0;
                    number++;
                }
                else
                {
                    Console.WriteLine(number);
                    break;
                }
            }
        }
    }
}

3.Trapezoid

Обяснение: Прочитам n от конзолата. На първо място си принтирвам първия и последния ред от трапеца. За останалата част пускам един главен цикъл до n-1. Нея я разделям на 2 части: първата е за външните точки и лявата страна на трапеца, а втората част е за вътрешните точки и дясната страна на трапеца. За всяка от частите пускам по един цикъл, които се намират в главния цикъл. След всяко завъртане дължината на цикъла за първата част се намалява с 1, а на цикъла за втората част се увеличава с 1.

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

namespace _3.Trapezoid
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int firstCurrent = n - 1;
            int secondCurrent = n - 1;

            // Top side
            for (int i = 1; i <= n; i++)
            {
                Console.Write('.');
            }

            for (int i = 1; i <= n; i++)
            {
                Console.Write('*');
            }
            Console.WriteLine();

            // Height

            for (int i = 1; i <= n - 1; i++)
            {
                for (int m = 1; m <= firstCurrent; m++)
                {
                    Console.Write('.');
                }
                Console.Write('*');

                for (int l = 1; l <= secondCurrent; l++)
                {
                    Console.Write('.');
                }
                Console.WriteLine('*');

                firstCurrent--;
                secondCurrent++;
            }

            //Bottom side
            for (int i = 1; i <= n * 2; i++)
            {
                Console.Write('*');
            }
            Console.WriteLine();
        }
    }
}

4.Odd Number

Обяснение: В началото реших да използвам брояч и масив, но задачата вървеше малко по-бавно от неохбодимото време и BGcoder ми даваше Run-time error грешка. Затова реших да използвам побитови операции.

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

namespace _4.OddNumber
{
    class Program
    {
        static void Main(string[] args)
        {
            string stringNumber = Console.ReadLine();
            int n = int.Parse(stringNumber);
            long currentNumber, result = 0;

            for (int i = 0; i < n; i++)
            {
                stringNumber = Console.ReadLine();
                currentNumber = long.Parse(stringNumber);
                result ^= currentNumber;
            }
            Console.WriteLine(result);
        }
    }
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s