Форум программистов, компьютерный форум, киберфорум
alhaos
Войти
Регистрация
Восстановить пароль
Оценить эту запись

ЗАДАЧА №13 Быки и коровы

Запись от alhaos размещена 27.10.2020 в 08:37
Обновил(-а) alhaos 27.10.2020 в 08:57

Красноярский краевой Дворец пионеров, (c)2006 - 2020

Петя и Вася часто играют в различные логические игры. Недавно Петя поведал Васе о новой игре «Быки и коровы» и теперь они играют в эту игру сутками. Суть игры очень проста: Петя загадывает четырехзначное число, состоящее из различных цифр. Вася отгадывает задуманное Петей число, перебирая возможные варианты. Каждый раз Вася предлагает вариант своего числа, а Петя делает Васе подсказку: сообщает количество быков и коров, после чего Вася с учетом подсказки продолжает отгадывание числа до тех пор, пока не отгадает. Быки – это количество цифр в предложенном Васей числе, совпадающих по значению и стоящих в правильной позиции в задуманном Петей числе. Коровы – количество цифр, совпадающих по значению, но находящихся в неверной позиции. Например, если Петя задумал число 5671, а Вася предложил вариант 7251, то число быков равно 1 (только цифра 1 на своем месте), а число коров равно 2 (только цифры 7 и 5 не на своих местах). Петя силен в математике, но даже он может ошибаться. Помогите Пете написать программу, которая бы по загаданному Петей и предложенному Васей числам сообщала количество быков и коров.

Входные данные
В единственной строке входного файла INPUT.TXT записано два четырехзначных натуральных числа A и B через пробел, где А – загаданное Петей число, а В – предложенный Васей вариант.

Выходные данные
В выходной файл OUTPUT.TXT нужно вывести два целых числа через пробел — количество быков и коров.

#INPUT.TXTOUTPUT.TXT
1 5671 7251 1 2
2 1234 1234 4 0
3 2034 6234 2 1

PowerShell
1
2
3
4
5
6
7
8
9
class problem_013 {
    static solve ([String]$inputFileName, [string]$outputFileName){
    $array = [int[]]((GC $inputFileName) -split "\D+")
        "$(((0..3).ForEach({$array[0][$_] -eq $array[1][$_]}) | Measure-Object -Sum).Sum) " +
        "$(((0..($array[0].Length - 1)).ForEach({$array[0][(0..3 -ne $_)] -ccontains $array[1][$_]}) | Measure-Object -Sum).Sum)" |
            Out-File $outputFileName
    }
}
[problem_013]::solve('C:\PROBLEMS\013\INPUT.TXT', 'C:\PROBLEMS\013\OUTPUT.TXT')
Размещено в Без категории
Просмотров 630 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.