Помогите решить задачку!

Автор Денис, 12 декабря 2010, 19:37

0 Пользователи и 1 гость просматривают эту тему.

Денис

Сколько чисел в первой тысяче содержит цифру 7 и при этом делится на 7?
Заранее благодарен!)

bormant

Денис,
поверьте, домашние задания нужно делать самостоятельно.
Автору на яд. Поддержать форум.

JohnSUN

И при этом очень старательно  ;D Тогда готовая программа будет не только отмазкой, но и удовольствием.
А "старательно" - это приблизительно так:
REM Лабораторная работа 1
REM Сколько чисел в первой тысяче содержит цифру 7 и при этом делится на 7?
Sub LabRab1
Dim Result As String ' Строка для вывода результата на экран.
' В ней будем накапливать числа, которые найдем
Dim count As Integer ' Количество найденных чисел
Dim i As Integer ' Переменная для цикла. Пробежит значения от 1 до 1000
' и каждое из этих значений проверим на 7
Dim iStr As String ' Чтобы проверить нет ли в цифрах числа семерки,
' проще всего преобразовать число в текстовую строку

REM Начало сообщения о результатах будет таким
Result = "Делятся на 7 и содержат цифру ""7"" числа: "
REM Пока не найдено ни одного числа, счетчик равен 0
count = 0
REM В цикле перебираем все числа от 1 до 1000.
REM Можно было бы начать прямо с семи и закончить 997.
For i = 1 to 1000
iStr = Str(i)
REM Есть ли в этой строке символ "7"?
If InStr(iStr, "7") > 0 Then ' Цифра "7" есть, не важно на каком месте
If (i MOD 7) = 0 Then ' Делится число i на 7 без остатка?
REM Оба условия выполнены. Добавляем найденное число в строку результата
Result = Result + iStr + ", "
REM И увеличиваем счетчик найденных чисел
count = count + 1
EndIf
EndIf
Next i
REM Цикл закончен. Допишем к строке результата общее количество
Result = Result + "всего " + Str(count) + " чисел"
REM Выведем результат на экран
print Result
End Sub


[вложение удалено Администратором]
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

bormant

#3
JohnSUN,
непедагогично. Но что сделано -- то сделано.
Стоит заметить, что на 7 делятся только числа вида 7, 7+7, 7+7+7, ... и их таких в тысяче а) в 7 раз меньше чем следующих по порядку, б) их можно сразу получать прибавляя 7, поэтому нет смысла проверять 7+1, 7+2, ..., 7+6 на делимость на 7, да и вообще в этом случае эта проверка будет лишняя.

for i = 7 to 1000 step 7
...
''' выбросить If (i MOD 7) = 0 Then

ps. Ворчливо в сторону -- а потом удивляемся, что всё "тормозит" на ровном месте...
Автору на яд. Поддержать форум.

VlhOwn


Ivanych

7121? Вот что-то мне подсказывало.... Слезу вышиб. За находчивость, при условии внятного объяснения трех остальных и той, котору за тебя решили, зачет получишь  ;D . К экзамену, глядишь, и остальное сообразишь

Денис

Большое спасибо) Щас будем с остальными разбираться))

JohnSUN

Палишься, Денис! Нужно было писать "Нет, это не я!..."  ;D
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Денис

Да ладно, что уж тут уже скрывать)))

dr.Faust

#9
Какая-то задачка, простите пошловатая...
Я бы никогда не решил, только потому, что предлагается простой перебор чисел кратных семи. Причем тут "содержит цифру 7" если это не сокращает пространство перебора? Для чего это в условии?

Вот предлагаю Денису, хотя бы для себя, записать алгоритм находящий количество чисел вида ((n-((n mod 2)+1))*2^n-1) делящихся на 7 или 13, сумма чисел которых нечётна, в произвольном диапазоне значений n, скажем от 4 до double.

Ну и в скорости алгоритмов можно посоревноваться...
Свобода информации - свобода личности!

JohnSUN

Цитата: Ivanych от 12 декабря 2010, 19:42За находчивость, при условии внятного объяснения трех остальных и той, которую за тебя решили, зачет получишь. К экзамену, глядишь, и остальное сообразишь
Денис, Ivanych!
Чем там у вас дело-то кончилось? Или еще не кончилось?..
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне