|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrew Nikitin 2:5020/400 29 Oct 2002 03:18:12 To : Rustam Ramazanov Subject : Re: наибольший нечётный множитель -------------------------------------------------------------------------------- "Rustam Ramazanov" <ramazanoff@univer.kharkov.ua> wrote in message news:apjlm2$346$1@host.talk.ru... > Приветствую! > > AN> имеется целая переменная (скажем x) и у неё есть > AN> некоторое (для простоты > AN> положителное) значение. Hадо написать выражение > AN> значением которого является > AN> наибольший нечётный делитель числа x. > AN> /* greatest odd divisor */ > AN> int god(int x) > AN> { > if (x&0x01==0) god(x >> 1) > else return x; > AN> } > Такой вариант подходит? Hет, не подходит. Речь шла о выражении, а здесь имеется оператор if. В принципе, в данном решении это можно поправить заменив if на ?:, но я имел ввиду что надо написать C выражение -- ни ifов, ни whilов, ничего что не может встретиться в операторе присваивания после знака "=" -- так чтобы в результатом этого выражения стал наибольший нечётный делитель числа, хранящегося в переменной x типа int. При этом о разрядности int ничего неизвестно (иначе можно просто перебрать все возможные значения). > AN> заменить точки на ascii символы чтобы функция > AN> возвращала то что нужно. > AN> (разрядность int неизвестна). > Hе совсем понятно, что здесь имеется ввиду. Hужна более точная > формулировка задачи. Хорошо. Вот точная формулировка: В определении /* greatest odd divisor */ int god(int x) { return ........; } заменить каждый стимвол с кодом 0x2e ('.') на некоторый другой ascii чимвол так чтобы в результате получилась функция, возвращающая наибольший нечётный делитель аргумента. -- nsg --- ifmail v.2.15dev5 * Origin: Posted via Supernews, http://www.supernews.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/156465f143140.html, оценка из 5, голосов 10
|