Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 234
от 21.01.2004, 21:10

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 405
Отправлено ответов: 1436
Активность: 354.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Boriss
Статус: Профессиональный
Общий рейтинг: 150.65
URL: Программирование на Паскале
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 116.56
[Подробней >>]
Strory
Статус: Начальный
Общий рейтинг: 140
[Подробней >>]
 
Vitally
Статус: Доверительный
Общий рейтинг: 157.44
[Подробней >>]
samum2000
Статус: Опытный
Общий рейтинг: 117.07
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 405. Здраствуйте. Я вот в одной книге увидел Олимпиадную задачу.Но толи там опечатка или что еще не знаю.... (ответов: 5)

Вопросов: 1, ответов: 5


 Вопрос № 405

Здраствуйте.
Я вот в одной книге увидел Олимпиадную задачу.Но толи там опечатка
или что еще не знаю.В общем не могли бы написать эту программу, и если
что исправить и написать как надо.(не использую функции и процедуры)
Вот она:
Из чисел от 10 до 99 вывести те, сумма цифр кот. равна S.
N изменяется от 0 до 18.(N - число кот. будем вводить)
В общем там надо так:
ввел 23 и вывел 11+12=23.По-моему что-то такое.но как сделать



Вопрос отправлен: 18.01.2004, 21:08
Отправитель: Олег

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Олег!
Если судить по "надо так" - то элементарно
А первая строка противоречит второй. Лучше узнать условие поточнее

Ответ отправлен: 20.01.2004, 18:00
Отправитель: Boriss


Отвечает Ayl

Доброе время суток, Олег!
Ну, вообще-то можно так. Вводим число S. Перебираем первую цифру числа (A, от 1 до 9) и вычисляем вторую цифру (B=S-A). Если 0<=B<=9, то выводим число AB.
Можно сократить перебор, если границами цикла сделать выражения max (1, S-9) и min (9, S). Потому что для суммы цифр S < 9 не нужно рассматривать цифры, большие S, а для суммы, большей 10 - цифры, меньшие S-9 (11 - цифры не меньшие 2, 12 - 3, ..., 18 - 9).


Ответ отправлен: 19.01.2004, 12:46
Отправитель: Ayl


Отвечает Strory

Доброе время суток, Олег!
Решение см в приложении.
Теперь несколько комментариев. Во-первых, число 23 вводить нельзя, т.к. "0>=N>=18", а 23 больше 18 (или я ошибаюсь?). Во-вторых, не ясно, почему N может быть равно нулю? Сумма цифр у двузначных(!) чисел по определению не может быть нулевой (кроме 00, но 00 меньше 10). В-третьих, ИМХО, Вы привели неправильный пример. Вот мой пример для этой задачи:
"ввёл 3 и вывел 12 21 30, т.к 1+2=3 и 2+1=3 и 3+0=3"
Всё вышенаписанное имеет смысл, если я правильно понял условие задачи.
Удачи :)

Приложение:

Ответ отправлен: 19.01.2004, 19:42
Отправитель: Strory


Отвечает Vitally

Приветствую Вас, Олег!
Условия не понятны. Если 23 это есть N, то что такое S?!?
А сумма ищется очень легко:
23=1+22=2+21=3+20=4+19..... Уловил? ;) Только нужно учесть, что ... = 19+4=20+3=21+2=22+1 т.е получился повтор с перестановкой слагаемых. Соответственно, нужно искать середину...


Ответ отправлен: 20.01.2004, 01:41
Отправитель: Vitally


Отвечает samum2000

Здравствуйте, Олег!
По-моему ты не правильно понял задание. Там надо вводить число от 0 до 18, а програма должна
вывести все те числа из диапозона 10..99, сумма цифр в которых равно введенному тобой числу
n. Например, если ввел 5, то вывести должна 14, 23, 32, 41, 50.
Вот сама программа:
program qwe;
var
n,i: integer;
begin
readln(n);
if not (n in [0..18]) then exit;
for i := 1 to 100 do
if (i div 10) + (i mod 10) = n then
writeln(i);
end.
Попутного ветра!

Ответ отправлен: 21.01.2004, 11:20
Отправитель: samum2000



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (16)
Perl (4)
Builder / Delphi (17)
Pascal (18)
Basic / VBA (5)
Java / JavaScript (5)
PHP (14)
Криптография (5)
WinAPI (11)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (57)
"Железо" (29)
Поиск информации (19)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (9)
Юристу
Гражданское право (17)
Семейное право (11)
Трудовое право (13)
КоАП (12)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное