Вычисление суммы необычного ряда (5) - QBasic
Формулировка задачи:
Условия задачи
1. Сначала задается число которое образуется, если писать
вместе кубы всех натуральных чисел от 1 до 100, то есть
Пример 1, 8, 27, 64, ...., но пишется так 182764...
2. Из этого числа образуется нужный нам ряд
берется первая цифра не равная 0 (нули игнорируются)
в нашем случае это цифра 1 и ей сопоставляется первое
слагаемое cos(1)
3. Берется вторая цифра, в нашем случае это 8, и ей сопоставляется
второе слагаемое:
cos(cos(cos(cos(cos(cos(cos(cos(1))))))))/2
Надеюсь вы поняли, количество косинусов равно нашей цифре
Их вычисление от числа 1 (всегда) последняя цифра (2) равна
номеру слагаемого.
Надо просуммировать все слагаемые. Эта программа вычислила
и получила число 4.495811. Учитывая погрешность в ответ
пойдет число 4.496
Вопросы
1. Вам нравятся такие задачи?
2. Вы решали подобные задачи?
3. Можно ли здесь использовать рекурсию?
4. Есть ли иное решение данной задачи?
Листинг программы
- REM Карфаген должен быть разрушен!!
- REM (Карфаген - это 2-3 типа задач (например матрицы,
- REM Их сортировка, поиск максимума, вычисление суммы....))
- REM
- REM 182764125216343512729 ...
- REM
- REM COS(1) + COS(COS(COS(... / 2 + ...
- REM
- REM OTBET: 4.495811
- REM
- DECLARE FUNCTION f$ (n!)
- DECLARE FUNCTION M! (n!)
- CLS
- CONST n = 100
- DIM SHARED T AS STRING
- FOR i = 1 TO n
- T = T + f(i)
- NEXT
- FOR i = 1 TO LEN(T)
- IF M(i) THEN
- x = 1
- FOR j = 1 TO M(i)
- x = COS(x)
- NEXT
- S = S + x / i
- END IF
- NEXT i
- PRINT S
- END
- FUNCTION f$ (n)
- f = LTRIM$(STR$(n ^ 3))
- END FUNCTION
- FUNCTION M (n)
- M = VAL(MID$(T, n, 1))
- END FUNCTION
Решение задачи: «Вычисление суммы необычного ряда (5)»
textual
Листинг программы
- DIM i AS LONG, n AS LONG, k AS LONG, s AS DOUBLE, x(9) AS DOUBLE
- x(0) = 1
- FOR i = 1 TO 9
- x(i) = COS(x(i - 1))
- NEXT i
- x(0) = 0
- FOR i = 1 TO 100
- n = i ^ 3
- WHILE n
- k = k + 1
- s = s + x(n MOD 10) / k
- n = n \ 10
- WEND
- NEXT i
- PRINT s
Объяснение кода листинга программы
Список действий в данном коде:
- Создаются пять переменных: i, n, k, s и массив x.
- В массиве x первым элементом задаётся значение 1.
- С помощью цикла FOR вычисляются все последующие элементы массива x по формуле x(i) = COS(x(i - 1)).
- Значение первого элемента массива x (косинус первого угла) меняется на 0.
- С помощью цикла FOR вычисляется сумма ряда по формуле s = s + x(n MOD 10) / k.
- Сумму ряда выводят на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д