Другие языки программирования и технологии

Как в цикле вывести последовательность чисел 7 и 0. Например 70, 707 , 700, 770.Цикл от 1 до 1000Язык не важен...

Например 70, 707 , 700, 770. Цикл от 1 до 1000 Язык не важен...
Такая вот идея;
Переведи число (счетчик цикла) в двоичную систему. Получится неповторяющаяся последовательность 1 и 0, потом 1 в текстовом режиме замени на 7 или умножь поразрядно на 7. Единицы заменятся, нули останутся.
=K
== K@nn@bi ==
30 875
Лучший ответ
реализуем идею:
Такая вот идея;
Переведи число (счетчик цикла) в двоичную систему. Получится неповторяющаяся последовательность 1 и 0, потом 1 в текстовом режиме замени на 7 или умножь поразрядно на 7. Единицы заменятся, нули останутся.

но покрасивше, вот код:
Sub p56959462()
For ii1 = 0 To 1
For ii2 = 0 To 1
For ii3 = 0 To 1
aaa = ii1 * 700 + ii2 * 70 + ii3 * 7
Cells(ii1 * 4 + ii2 * 2 + ii3 + 1, 1) = aaa
Next ii3
Next ii2
Next ii1
End Sub
а вот результат работы кода:
Андрей Герич
Андрей Герич
71 512
Вариант 1.
Число максимум 3-значное, делаем 3 вложенных цикла.
Счетчик в каждом цикле имеет значения 0 или 7
В теле 3-го цикла контактация всех счетчиков.
Очень быстро, но необходимо добавление вложненных циклов с увеличением разрядности.

Вариант 2.
Цикл от 1 до 1000.
Счетчик переводим в строку.
Во вложенном цикле анализируем строку с 1-го по последний символ.
Если символ неравен 0 И неравен 7, то выходим из вложенного цикла.
Если вложенный цикл дошел до конца, значит в числе только 0 и 7

Вот код на VBA Excel

Sub zz01()
Dim i As Long, j As Long, k As Long
Dim r As Long
For i = 0 To 7 Step 7
For j = 0 To 7 Step 7
For k = 0 To 7 Step 7
r = r + 1
Cells(r, 1) = i & j & k 'вывод
Next k
Next j
Next i
End Sub

Sub zz02()
Dim i As Long, j As Long, St As String, St1 As String * 1
Dim r As Long
For i = 0 To 1000
St = i
For j = 1 To Len(St)
St1 = Mid(St, j, 1) ' один символ
If St1 <> 0 And St1 <> 7 Then j = 99
Next j
If j < 99 Then
r = r + 1
Cells(r, 2) = i 'вывод
End If
Next i
End Sub
Сергей Лодяков
Сергей Лодяков
20 339

Похожие вопросы