Вычислить сумму неявно заданных чисел - 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. Основной подход: В основном подходе используется цикл от 1 до 100, который вычисляет сумму квадратов чисел от 1 до 100. Сумма сохраняется в переменную ss.
  2. Вспомогательный подход: Вспомогательный подход используется для вычисления остатка от деления числа на 10 и для вычисления значения переменной k. Если остаток от деления числа на 10 равен 0, то число делится на 10 без остатка, и его значение не учитывается в сумме. Если остаток от деления числа на 10 не равен 0, то число умножается на 10 и добавляется к переменной k. Если значение переменной k становится больше 10, то к переменной ss добавляется дробь, равная 1/k. После этого значение переменной k сбрасывается в 0. Список вычислений:
  3. Объявление переменных:
    • k As integer (переменная k типа integer)
    • ss As Double (переменная ss типа Double)
  4. Вычисление суммы квадратов чисел от 1 до 100:
    • цикл For i = 1 To 100
    • s i * i (вычисление суммы квадратов чисел)
    • print ss (вывод результата на экран)
  5. Вычисление остатка от деления числа на 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
    • End Sub
  6. Вызов вспомогательной функции для каждого числа от 1 до 100:
    • For i = 1 To 100
    • s i (вызов вспомогательной функции для числа i)
    • End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы