Вычисление суммы необычного ряда (2) - QBasic

Формулировка задачи:

Дана последовательность чисел sin1, sin2, ... , sin1000 Между этими числами поставлены знаки операций умножения и сложения. Знаки ставятся перед числом (То есть число sin1 не участвует в определении операции) Как определяется операция? если в числе sin(i) первая цифра после десятичной запятой Нечетная, то перед этим числом ставится знак умножения, в противном случае - сложение Надо суммировать полученный ряд. .... Эта программа выдала ответ: 29.91009 С учетом погрешности вычислений последние три цифры можно отбросить Вопросы 1. Можно ли применить здесь рекурсию? 2. Какой уровень сложности этой задачи? 3. Как решить задачу иначе?
REM
REM  OTBET: 29.91
REM
 
CLS
n = 1000
DIM M(1 TO n)
 
FOR i = 1 TO n
   M(i) = SIN(i)
NEXT
 
FOR i = 2 TO n
   k = FIX(10 * ABS(M(i)))
   IF k MOD 2 THEN
      M(i) = M(i) * M(i - 1)
      M(i - 1) = 0
   END IF
NEXT
 
FOR i = 1 TO n
   SUM = SUM + M(i)
NEXT
 
PRINT SUM
END

Код к задаче: «Вычисление суммы необычного ряда (2) - QBasic»

textual
DIM i AS LONG, a AS DOUBLE, b AS DOUBLE, s AS DOUBLE
b = SIN(1)
FOR i = 2 TO 1000
    a = SIN(i)
    IF INT(ABS(a) * 10) MOD 2 THEN b = b * a ELSE s = s + b: b = a
NEXT i
s = s + b
PRINT s

8   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы