Дано любое пятизначное число. Найти количество единиц в нем. Допустим (51041). Условие: Не использовать условные операторы Возможно нерешаемо, хочу посмотреть =) Языки: Паскаль,Си,С++,С#,Java,Алгоритмический,Блок-схемы Вход: 51041 Выход: 2
Можете использовать строки,символы,целочисленные типы и прочее. Ограничений нету, кроме условных операторов
В том то и дело что совсем без условных операторов. Даже в ассемблере PIC контроллеров и то их использовал. Т.е даже на аппаратном уровне какие-то ветвления организованы. А тут такой изврат.
Т.е. алгоритм по выделению цифр из заданного числа приходилось писать. Дальше перебор цифр сравнение и накопление счетчика. НО... ! СОВСЕМ выкинуть условные операторы?!?!?! ( Например если языком не предусмотрена стандартная конструкция циклов, можно обойтись. Можно сформировать эквиввалентную структуру ветвелением и операторами перехода )
А так любопытно, неужели кто-то сподобится.
На с++................
Простите Т.е функция соunt сама выполнит пересчет в векторе? А как она работает? Неужто в ней нет условных операторов? :) А так да в тексте основной программы его нет.
А внутри count наверняка что-то вроде: если текущий элемент массива (вектора) равен 1, то k:=k+1