Delphi Studio » Delphi Статьи » Число Армстронга. Пример решения Олимпиадного задания на Delphi


Число Армстронга - такое число из k цифр, для которого сумма k-х степеней его цифр равна самому числу, например: 153=1^3+5^3+3^3. Надите 5 наибольших чисел Армстронга, состоящих не более чем из n цифр. Программа должна считать выходые данные из файла input.txt и вывести результат в файл output.txt
Иногда просто интересно решить что-нибудь новенькое, олимпиадные задачи как раз подходят для загрузки и разгрузки мозгов)
Здесь я приведу пример с комментариями решения этого задания. Задание оценивается в 9 баллов из 10.
{$APPTYPE CONSOLE}
uses
SysUtils;
var
j,n,n1,n2,i,t,q,r,y,o,s,b:integer;
k:string;
g:array[1..100] of integer;
begin
reset(input,'input.txt');
rewrite(output,'output.txt');
readln(n);
n2:=9;
for i:=1 to n-1 do
begin
n2:=n2*10+9;
end;
n:=1; //Разрядность числа... в нашем случае начинаем с однозначного
o:=10; //Делитель, для определения дальнейшей разрядности числа
for i:=1 to n2 do //Цикл перебора чисел
begin
s:=i mod o; //Проверяем какое число(Однозначное, двузначное)
if s=0 then //Если остаток от деления равен 0 то мы получили следующее по разрядности число
begin
n:=n+1; //Увеличиваем разрядность числа
o:=o*10; //Увеличиваем делитель
end;
k:=inttostr(i); //Разбиваем число на составляющие
for j:=1 to n do //Перебираем каждую составляющую числа
begin
r:=1; //изначальный множитель
for t:=1 to n do //Цикл возведения в степень
begin
q:=strtoint(k[j]); //Переводим составляющую из строкового типа в числовой
r:=r*q; //Перемножаем
end;
y:=y+r; //Находим сумму степеней составляющих
end;
if i=y then //Сравниваем само число с суммой степеней его составляющих
begin
b:=b+1; //если совпало
g[b]:=i; //то записываем число в массив
end;
y:=0; //Обнуляем сумму
end;
for i:=b-4 to b do //Цикл перебора последних 5 чисел массива
begin
append(output);
write(g[i],' ');
end;
close(input);
close(output);
end.
Также приведу некоторые ответы на часто возникающие вопросы от начинающих программировать. В дальнейшем объеденю все это в отдельной статье:
1. Как возвести в степень число?
1.1 Первый вариант: Использование циклов.
r:=1; //множитель, впоследствии будет результатом возведения в степень
for t:=1 to n do
begin
r:=r*q; // перемножаем множитель на число
end;
В итоге мы получаем число q возведенное в степень n
1.2 Второй вариант: Использование Exp().
Число q в степени n можно записать в виде формулы:
В итоге так же получаем степень. Этот пример подходит как для Delphi так и для Pascal.
2. Как добавить запись в конец файла без его перезаписи?
Ответ:
append(output); //открываем файл для записи
write('Hello!'); //Пишем текст в файл
close(output); //Закрываем! Это обязательная процедура!
Опять же, в процессе работы с файлами у меня возникли некоторые вопросы: Например, если нам необходимо как то по другому назвать переменную для файла, то есть не output а например f тогда код будет выглядеть иначе!
var f:text;
begin
assign(f,'output.txt'); //Назначение текстового файла переменной
append(f); //открываем файл для записи
write(f,'Hello!'); //Пишем текст в файл, при этом явно указываем переменную для файла в который пишем! Иначе будет ошибка
close(f); //Закрываем! Это обязательная процедура!
end;
3. Как разделить число на составляющие?
Ответ:
Данный пример был разобран в решении задачи выше!
Самое просто решение данной проблемы является использование функции inttostr();
for j:=1 to n do //Перебираем каждую составляющую числа. n это разрядность числа... например однозначное.
begin
Writeln(k[j]);
end;
В итоге получаем число разбитое на составляющие! Для наглядности вывел их с помощью перебора циклом на экран.
Так же есть и другой способ... например целочисленное деление на степени числа 10... но это долго и занимает много времени!
Kunya
Посетитель
Рега: 2.11.2010
Постов: 0
Сообщений: 1--

Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Лучшее на Delphi Studio
Лучшие книги по Delphi
-
Книга Delphi 2010 Handbook with Source Code - Книга Delphi 2010 Handbook with Source Code посвящена CodeGear Delphi 2010
Книга Программирование в Delphi глазами хакера. Фленов - В книге вы найдете множество нестандартных приемов программирования на языке Delphi, его недокументированные функции и возможности. Вы узнаете, как создавать маленькие шуточные программы. Большая часть книги посвящена программированию сетей
Книга Delphi в шутку и всерьез что умеют хакеры М.Флёнов - Электронная книга о профессиональных приемах программирования в Delphi. В легкой и доступной форме с использованием большого количества профессиональных примеров рассмотрены вопросы корректного написания кода, оптимизации программ, работы с системным окружением, создания сетевых приложений
Книга Библия Delphi Михаил Фленов (2-е издание) + CD - Книга посвящена программированию на языке Delphi от самых основ до примеров построения конкретных приложений. Подробно описывается логика выполнения каждого участка кода, чтобы читатель смог использовать эти знания при решении собственных задач. Книга содержит большое количество примеров практического программирования
Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б - Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP
Книга Delphi 7 Учебный курс С.Бобровский - Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
Книга Delphi Быстрый Старт - В книге описываются интерфейс системы визуального программирования Delphi на основе 6-й версии, состав и характеристика элементов проекта приложения, приемы программирования на языке Object Pascal
Книга Indy in Depth. Глубины Indy - Книга Indy in Depth Глубины Indy будет интересно для тех, кто интересуется хакингом, вирусописанием, а значит и для тех, кто занимается защитой сетей, программ, информации. Эта книга не только по Indy, она про Интернет, про протоколы, термины, методы работы, а к Indy относятся только примеры
Книга OpenGL - Графика в проектах Delphi + CD. М.В.Краснов - Книга посвящена использованию стандартной графической библиотеки OpenGL в проектах Delphi. Начиная с самой минимальной программы, последовательно и подробно рассматриваются все основные принципы программирования компьютерной графики: двухмерные итрехмерные построения, анимация, работа с текстурой, визуальные эффекты
Книга Delphi 7 для профессионалов. Марко Кэнту - Книга, которую должен прочитать каждый, кто хочет стать профессиональным программистом на Delphi. Книга не предназначена для начинающих. Требуются хорошие знания Delphi. Предназначена для тех, кто хочет стать именно профессиональным программистом
- Delphi Studio Примеры на Delphi Примеры на Delphi [Сеть Интернет] Примеры на Delphi [Система] Примеры на Delphi [Графика Мультимедиа] Примеры на Delphi [Базы данных] Delphi Исходники Исходники Delphi [Сеть Интернет] Исходники Delphi [Система] Исходники Delphi [Графика Мультимедиа] Delphi Исходники [Базы данных] Компоненты Delphi Скачать Компоненты Delphi Скачать Delphi / Pascal Скачать Книги, Учебники Delphi Скачать Книги, Учебники Pascal Delphi Статьи Pascal Статьи Вопросы и ответы по Delphi Вопросы и ответы по Pascal Карта сайта Delphi Studio Канал RSS Delphi Studio
олимпиадное программирование на делфи
пароли в делфи
delphi как узнать существует ли файл
memo в delphi
двумерный массив в memo delphi
Проект теста на делфи
создание скорости интернет соединения на Delphi
исходники в Delphi
Delphi 7 использую компанент WebBrowse
Delphi Простой текстовый редактор исходник найти
IZS-SMS 1.0 for delphi
учебник GUI на Delphi
listBox в delphi
Delphi пароль ini
исходник калькулятор delphi
книга что могут хакеры фленов
разрыв графика delphi
сокеты в delphi
[_] свернуть в трей builder
открытие анимированного gif вудзрш
свойствa form delphi
"delphi 7" "ListBox" "OnClick"
form delphi
form delphi описание
функции клавиш клавиатуры для хакера
.ini пример
дельфи число Армстронга
работа со строками delphi delete
delphi сделать панель прозрачной
idhttp
скачать адоб флеш плеер на мобильник
авторизация вконтакте на delphi
функции floattostr delphi 7
как программно свернуть прогу в трей
Delphi исходник для трея
примеры использования timer в delphi
количество одинаковых чисел в матрице delphi
Сайт Delphi Studio рассчитан для начинающих, новичков, чайников, которые решили программировать на Delphi :)
Добавляйте свои примеры, исходники, компоненты, статьи и тогда на сайте будет много полезной информации, что поможет друг другу находить нужный материал.
Книга Delphi 7 Учебный курс С.Бобровский - Электронная книга является руководством по программированию в среде Delplii 7. Описывается весь процесс разработки программы: от конструирования диалогового окна до организации справочной системы и создания установочного CD-ROM
Книга О чем не пишут в книгах по Delphi + CD Григорьев А.Б - Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP
Как открыть и закрыть CD-ROM в Windows (MMSystem). Пример на Delphi - Пример на Delphi показывающий как можно открыть и закрыть CD-ROM в Windows. В uses нужно дабвить MMSystem
А знаете ли вы что такие известные программы как AIMP, Skype, QIP, QIP Infium, R&Q, The Bat!, FL Studio, Guitar Pro, Game Maker, Total Commander, PowerArchiver, Download Master написаны на Delphi? И это далеко не весь список программ чем может похвастаться продукция Borland Delphi!