|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.02.2013, 17:41 | #1 |
Пользователь
Регистрация: 25.01.2013
Сообщений: 16
|
Pascal робота с типом char
Дано натуральное N, что может иметь от 1 до 100 цифр и не начинается с нуля. Нужно найти наименьшее натуральное M> N и такое, что сумма цифр N равна сумме цифр M.
Как решать данную задачу, можно просто алгоритм или код, разобраться попробую сам |
21.02.2013, 18:44 | #2 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Как мне на халяву срубить n-ое кол-во денюжек, можно просто долларов или рублей, потратить попробую сам
На форуме живые люди, от которых, возможно, зависит Ваше дальнейшее обучение. И вместо того "задобрить" их, вы отдаете приказ.. (под задобрить понимается : 1) поприветствовать 2) показать что те усилия, которые они потратят на Вас будут не напрасны (= показать свои наработки) 3) за ранее поблагодарить) Вот и есть тот минимум, который увеличит возможность получения ответа как минимум в двое.. |
21.02.2013, 18:50 | #3 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
По-моему, вполне адекватная просьба:
Цитата:
1) Найти сумму цифр исходного числа. 2) Найти остаток от деления её на 9 и вывести (или не вывести в обозначенном выше особом случае). 3) Вывести <сколько надо> девяток. А. M>N. Раззява. Тогда вопрос: как увеличить число, не меняя его сумму цифр? Ответ: уменьшить на 1 цифру в разряде и увеличить на 1 цифру в другом разряде, старше первого. Уменьшить цифру можно только если она не 0, увеличить - только если она не 9. Алгоритм: 1) Взять исходное число и идти по нему от младшего разряда. 2) Первую ненулевую цифру уменьшить на 1. 3) Идти дальше до первой цифры, не равной 9, увеличить её на 1. 4) Если в ходе выполнения пункта 3) число закончилось, приписать спереди 1 (фактически, увеличив на 1 ведущий ноль). 5) А теперь вместо "подчисла" после увеличенной цифры записать минимальное число с той же суммой цифр (см. предыдущий алгоритм) и тем же количеством цифр. Код:
Последний раз редактировалось Abstraction; 21.02.2013 в 19:00. |
|
21.02.2013, 18:53 | #4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Я так понимаю, у нас есть текстовая запись числа N (строка).
Идем с хвоста строки и пытаемся вычесть единичку из младшего разряда и прибавить ее с следующему по старшинству разряду. Очевидно, это возможно при условии, когда младший разряд не менее 1, а следующий за ним менее 9. Если оказалось, что единицу мы прибавили не ко второму с конца разряду, то "хвост" следует преобразовать так, чтобы возможно уменьшить его, не меняя сумму цифр. |
21.02.2013, 19:14 | #5 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Старый, добрый лом :
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[pascal] Работа с комбинированным типом файлов + типизированные файлы | Korres | Помощь студентам | 0 | 18.05.2012 21:16 |
Хождения робота по плоскости (pascal) | Besidnuk | Помощь студентам | 0 | 13.12.2010 13:06 |
Работа с типом данных запись в Pascal | JayDe23 | Помощь студентам | 3 | 18.06.2009 18:08 |
Киньте пример работы с типом CHAR | zotox | Помощь студентам | 6 | 05.05.2009 16:37 |