Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите написать пару лёгких программ.
Форумы Боевого Народа > Высокие технологии во всех вариациях > Софт > Программирование
Miss_Zhouli
1) Дано натуральное число:
а)найти количество чётных цифр данного числа
б)верно ли, что данная цифра А встречается в числе более двух раз (А вводить с клавиатуры)
2) найти Все четырёхзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27
3)Найти количество различных цифр данного натурального числа.

Я гуманитарий и это не по моим мозгам...
icegreg
1. Натуральное - это целое от 0 до бесконечности, условно в программирование это называется без знаковое(потому что (-) нет ) целое, он же для паскаля тип word

var nat: Word;

1.1. Нахождение четных цифр обычно делают двумя методами.
1.1.1. Первый метод - делить на 10, смотреть вещественную часть (это то что после точки)
1.1.2. Второй метод - преобразовать в строку, а дальше смотреть каждый символ (т.к. строка это массив символов, то нам это очень удобно)

Далее каждое число проверять четное оно или нет. Четное число не имеет остатка от деления на 2.
например 5 mod 2 = 1, 4 mod 2 = 0
1.2. Встречается ли цифра более двух раз.
пробегаемся по массиву из пункта 1.1.2 и сравниваем каждый элемент с А, если правильно, то увеличиваем счетчик (который заранее создаем и присваиваем онному 0)
2. На сообразительность сначала нам надо посмотреть на что делится само число. Ага на 27.
Если так то наши числа, это нечто такое x*27 где х - целое, при том, что 9999>х*27 >1000. потому что четырех значное.
При этом же (х) - просто обязан делится на два, так как есть второе условие, что наше число х*27 должно быть кратно 6.
А 6 это 2*3. То, что число х*27 ну по любому будет кратно 3 думаю, что ясно(27 = 3*3*3), а вот от куда взять кратность двум - тоже вроде ясно, уже из х.
Так что диапазон чисел устанавливается просто:
minX := 1000 div 27
if minX*27 <1000 then: inc(minX)
maxX :=9999 div 27
Дальше зная диапазон (х) (40-370) можем вытащить все кратные двум
for x ....
if x mod 2 = 0 then

А дальше все забавно каждый Х*27 преобразовываем в строку
берем 1 и 4 элемент строки преобразовываем в их в целое и суммируем, так же поступаем с 3 и 4
Сравниваем между собой суммы и если подходит, выводим на экран.
3. Таки да, все просто должно быть
Опять же таки преобразуем целое в строку.
Дальше вроде просто - попробуй подумать. В случае даю подсказку:
http://en.wikibooks.org/wiki/Pascal_Programming/Arrays

P.S.: Почему не написал полностью код? Потому что не хочу делать врачей которые на знаю как лечить. А калечить я и сам умею. Порой нужно дать подсказку.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.