| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C] Нахождение НОД |
| Автор: Tripl-X 4.1.2005, 17:14 | ||||
| Народ, помогите с решением этих простых задач! 1. Найти наименьшии общий делитель для всех чисел массива: int main(void)
... Не знаю, что делать дальше... печатаются все делители каждого из чисел. 2. Замнеить все маленькие буквы на большие.
Попытался сделать с помошью шестнадцатеричного кода... не получилось. Может у вас получится Заранее спасибо! |
| Автор: sergejzr 4.1.2005, 17:55 | ||||
Функция отдаст НОД
Твой код следовало бы переписать примерно так:
А во втором, лучше делать: if((A[i]>='a') && (A[i]<='z')) A[i]-='a'+'A'; |
| Автор: Tripl-X 4.1.2005, 21:56 | ||||
| sergej.z В первой проге считае НОД для каждого символа, а нужно для всего массива... Как это можно сделать? ***
после этой строки компилятор пишет
Что с этим можно сделать? |
| Автор: neutrino 4.1.2005, 23:34 | ||
Наименьший общий делитель 1. Может нужен наибольший? Или наименьшее общее кратное? Корректируй вопрос. |
| Автор: sergejzr 4.1.2005, 23:38 | ||||||||
Потому, что A[i] у тебя int.
А с НОДами тогда так:
Добавлено @ 23:40
Это точно |
| Автор: neutrino 4.1.2005, 23:47 | ||||
| С маленькими буквами самый быстрый способ, что я придумал: использовать маску. Если известно, что это точно буква (а не точка или другой символ), то для того, чтобы из большой сделать маленькую, нужно включить шестой бит, а из маленькой большую наоборот выключить этот бит. Например переменная С содержит букву, тогда делаем из нее маленькую:
и большую:
В этом процессе "не портятся" уже маленькие/большие буквы. |
| Автор: Tripl-X 5.1.2005, 18:39 |
| Да, извиняюсь. Конечно же кратное, а не делитель... делитель в другом задании... поссмотрел не туда... |
| Автор: sergejzr 5.1.2005, 18:45 |
| int NOK(int x, int y) { return (x*y) / NOD(x,y); } |