Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class BullsAndCows
- {
- static void Main()
- {
- int secretNumber = int.Parse(Console.ReadLine());
- int bulls = int.Parse(Console.ReadLine());
- int cows = int.Parse(Console.ReadLine());
- bool isAnyFound = false;
- for (int guessNumber = 1111; guessNumber < 10000; guessNumber++)
- {
- if (Convert.ToString(guessNumber).IndexOf('0') > -1)
- {
- continue;
- }
- int bullsFound = FindBulls(guessNumber, secretNumber);
- int cowsFound = FindCows(guessNumber, secretNumber);
- if (bullsFound == bulls && cowsFound == cows)
- {
- isAnyFound = true;
- Console.Write(guessNumber + " ");
- }
- }
- if (!isAnyFound)
- {
- Console.WriteLine("No");
- }
- }
- static int FindCows(int guessNumber, int secretNumber)
- {
- int cowsCount = 0;
- List<char> guessNum = Convert.ToString(guessNumber).ToList();//със linq го конвертирам в лист
- List<char> secretNum = Convert.ToString(secretNumber).ToList();
- for (int i = 0; i < 4; i++)
- {
- if (guessNum[i] == secretNum[i])
- {
- guessNum[i] = '*';
- secretNum[i] = '*';
- }
- }
- for (int i = 0; i < 4; i++)
- {
- if (guessNum[i] != '*' && secretNum.Contains(guessNum[i]))//ако е различно от '*' и го има имаме крава
- {
- cowsCount++;
- secretNum.Remove(guessNum[i]);//по този начин премахвам който си искам елeмент, а не на позиция i
- }
- }
- return cowsCount;
- }
- static int FindBulls(int guessNumber, int secretNumber)
- {
- int bullsCount = 0;
- int guessA = (guessNumber / 1) % 10;
- int guessB = (guessNumber / 10) % 10;
- int guessC = (guessNumber / 100) % 10;
- int guessD = (guessNumber / 1000) % 10;
- if (guessA == (secretNumber / 1) % 10)
- {
- bullsCount++;
- }
- if (guessB == (secretNumber / 10) % 10)
- {
- bullsCount++;
- }
- if (guessC == (secretNumber / 100) % 10)
- {
- bullsCount++;
- }
- if (guessD == (secretNumber / 1000) % 10)
- {
- bullsCount++;
- }
- return bullsCount;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment