29 мая 2013

Китайский календарь

Ещё одно интересное задание:
В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов,
 обозначаемых названиями цвета: зеленый, красный, желтый, белый и голубой. При
    этом каждый цвет следует по два года подряд. В каждом подцикле годы носят названия животных:
    крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи.
    По номеру года определить его название, если 4 год нашей эры — начало цикла: «год зеленой крысы».

using System;
using System.Text;

namespace China
{


    class Program
    {
        static void Main(string[] args)
        {
            Compute();
        }

        static void Compute()
        {

            string[] MyAnimal = new string[12] { "Rat", "Cow", "Tiger", "Hare", "Dragon", "Snake", "Horse", "Sheep", "Monkey", "Cock", "Dog", "Pig" };
            string[] MyColor = new string[5] { "Green", "Red", "Yellow", "White", "Blue"};

            int counterA= 0;
            int counterC = 0;
            int counterCC = 0;
            for (int i = 4; i <= 70;i++)
            {
               
                if (i>4 && (i-4)%12==0)
                {                  
                    counterA++;
                }
                if (i>4 && i % 2 != 0)
                {
                    counterC++;
                }
                if (i > 4 && (i - 4) % 10 == 0)
                {
                    counterCC+=10;
                    counterC = 0;
                }

                StringBuilder t;
                t = new StringBuilder("Year: " + i + " "+MyColor[i - 4 - (counterC+counterCC)] + " " + MyAnimal[(i - 4 - 12 * counterA)]);

                Console.WriteLine(t);
            }

            Console.ReadKey();
        }
    }
}

Комментариев нет: