Вычислить сумму неявно заданных чисел - QBasic
Формулировка задачи:
Чтобы понять, что же надо сложить, определим сначала
длинное число 149162536496481100 ... 10000.
это квадраты натуральных чисел от 1 до 100, записанные
по-порядку вплотную друг к другу.
...
Условия такие
1. цифра 0 игнорируется вовсе.
2. из этого числа берутся двузначные числа слева направо
3. для каждого числа находится ему обратное и все это
суммируется.
пример
1491625364964811
1/14 + 1/91 + 1/62 + 1/53 + 1/64 + 1/96 + 1/48 + 1/11 + ...
(надеюсь это понятно)
автор надеется также на то, что никто не сумеет написать
ИНОЙ ВАРИАНТ этой программы. (ну если только вы не
будете считать вручную). Ответ: 10.05247
Решение задачи: «Вычислить сумму неявно заданных чисел»
textual
Листинг программы
Dim k As integer, ss As Double Sub asd() For i = 1 To 100 s i * i Next print ss End Sub Sub s(a As Integer) If a Then s a \ 10 d = a Mod 10 If d Then k = k * 10 + d If k > 10 Then ss = ss + 1 / k k = 0 End If End If End If End Sub
Объяснение кода листинга программы
В этом коде есть два подхода для вычисления суммы неявно заданных чисел: основной и вспомогательный.
- Основной подход:
В основном подходе используется цикл от 1 до 100, который вычисляет сумму квадратов чисел от 1 до 100. Сумма сохраняется в переменную
ss
. - Вспомогательный подход:
Вспомогательный подход используется для вычисления остатка от деления числа на 10 и для вычисления значения переменной
k
. Если остаток от деления числа на 10 равен 0, то число делится на 10 без остатка, и его значение не учитывается в сумме. Если остаток от деления числа на 10 не равен 0, то число умножается на 10 и добавляется к переменнойk
. Если значение переменнойk
становится больше 10, то к переменнойss
добавляется дробь, равная 1/k. После этого значение переменнойk
сбрасывается в 0. Список вычислений: - Объявление переменных:
- k As integer (переменная
k
типа integer) - ss As Double (переменная
ss
типа Double)
- k As integer (переменная
- Вычисление суммы квадратов чисел от 1 до 100:
- цикл For i = 1 To 100
- s i * i (вычисление суммы квадратов чисел)
- print ss (вывод результата на экран)
- Вычисление остатка от деления числа на 10 и добавление его к переменной
k
:- Sub s(a As Integer)
- If a Then
- s a \ 10 (вычисление остатка от деления числа на 10)
- d = a Mod 10 (вычисление остатка от деления числа на 10)
- If d Then
- k = k * 10 + d (добавление остатка от деления числа к переменной
k
) - If k > 10 Then
- ss = ss + 1 / k (вычисление и добавление дроби к переменной
ss
) - k = 0 (сброс значения переменной
k
в 0) End If End If End If
- ss = ss + 1 / k (вычисление и добавление дроби к переменной
- End Sub
- Вызов вспомогательной функции для каждого числа от 1 до 100:
- For i = 1 To 100
- s i (вызов вспомогательной функции для числа i)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д