BorislavBorisov

01.05.Bulls and Cows - Ники решение с List

Sep 27th, 2015
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. class BullsAndCows
  4. {
  5.     static void Main()
  6.     {
  7.         int secretNumber = int.Parse(Console.ReadLine());
  8.         int bulls = int.Parse(Console.ReadLine());
  9.         int cows = int.Parse(Console.ReadLine());
  10.         int result = 0;
  11.         for (int guessNumber = 1111; guessNumber <= 9999; guessNumber++)
  12.         {
  13.             int bullsCount = 0, cowsCount = 0;
  14.            
  15.             int guessCurrentA = guessNumber / 1000 % 10;
  16.             int guessCurrentB = guessNumber / 100 % 10;
  17.             int guessCurrentC = guessNumber / 10 % 10;
  18.             int guessCurrentD = guessNumber / 1 % 10;
  19.  
  20.             if(guessCurrentA == 0 || guessCurrentB == 0
  21.                 || guessCurrentC == 0 || guessCurrentD == 0)
  22.             {
  23.                 continue;
  24.             }
  25.             int secretCurrentA = secretNumber / 1000 % 10;
  26.             int secretCurrentB = secretNumber / 100 % 10;
  27.             int secretCurrentC = secretNumber / 10 % 10;
  28.             int secretCurrentD = secretNumber / 1 % 10;
  29.  
  30.             if (guessCurrentA == secretCurrentA)
  31.             {
  32.                 bullsCount++;
  33.                 guessCurrentA = -1;
  34.                 secretCurrentA = -1;
  35.             }
  36.             if (guessCurrentB == secretCurrentB)
  37.             {
  38.                 bullsCount++;
  39.                 guessCurrentB = -1;
  40.                 secretCurrentB = -1;
  41.             }
  42.             if (guessCurrentC == secretCurrentC)
  43.             {
  44.                 bullsCount++;
  45.                 guessCurrentC = -1;
  46.                 secretCurrentC = -1;
  47.             }
  48.             if (guessCurrentD == secretCurrentD)
  49.             {
  50.                 bullsCount++;
  51.                 guessCurrentD = -1;
  52.                 secretCurrentD = -1;
  53.             }
  54.             List<int> check = new List<int>();
  55.             if (guessCurrentA > 0)
  56.             {
  57.                 check.Add(guessCurrentA);
  58.             }
  59.             if (guessCurrentB > 0)
  60.             {
  61.                 check.Add(guessCurrentB);
  62.             }
  63.             if (guessCurrentC > 0)
  64.             {
  65.                 check.Add(guessCurrentC);
  66.             }
  67.             if (guessCurrentD > 0)
  68.             {
  69.                 check.Add(guessCurrentD);
  70.             }
  71.  
  72.             if (check.Contains(secretCurrentA))
  73.             {
  74.                 cowsCount++;
  75.                 check.Remove(secretCurrentA);
  76.             }
  77.             if (check.Contains(secretCurrentB))
  78.             {
  79.                 cowsCount++;
  80.                 check.Remove(secretCurrentB);
  81.             }
  82.             if (check.Contains(secretCurrentC))
  83.             {
  84.                 cowsCount++;
  85.                 check.Remove(secretCurrentC);
  86.             }
  87.             if (check.Contains(secretCurrentD))
  88.             {
  89.                 cowsCount++;
  90.                 check.Remove(secretCurrentD);
  91.             }
  92.             if (cowsCount == cows && bullsCount == bulls)
  93.             {
  94.                 result = 1;
  95.                 Console.Write(guessNumber);
  96.                 Console.Write(" ");
  97.             }
  98.         }
  99.         if (result == 0)
  100.         {
  101.             Console.WriteLine("No");
  102.         }
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment