Найти общую сумму цифр всех квадратов чисел от 1 до 100 - QBasic

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

Даны квадраты натуральных чисел от 1 до 100 1; 4; 9; 16; 25; ... ; 9801; 10000 Надо найти общую сумму всех цифр этих чисел. Программа нашла. Общая сумма равна 1480 Вопросы 1. Как написать рекурсивную программу? 2. Была ли проще программа, если бы каждый квадрат числа разлагался на цифры отдельно? 3. Упростило бы программу добавление нулей справа (чтобы каждое число было четырехзначным)? 4. А какое еще может быть решение?
REM
REM  1491625...980110000
REM
REM  SUMMA = 1480
REM
 
DECLARE FUNCTION M! (n!)
DECLARE FUNCTION SS$ (n!)
 
CLS
DIM SHARED S AS STRING
 
FOR i = 1 TO 100
   S = S + SS(i ^ 2)
NEXT
 
FOR i = 1 TO LEN(S)
   SUM = SUM + M(i)
NEXT
 
PRINT SUM
END
 
FUNCTION M (n)
   M = VAL(MID$(S, n, 1))
END FUNCTION
 
FUNCTION SS$ (n)
   SS = LTRIM$(STR$(n))
END FUNCTION

Код к задаче: «Найти общую сумму цифр всех квадратов чисел от 1 до 100 - QBasic»

textual
DIM i AS LONG, n AS LONG, s AS LONG
FOR i = 1 TO 100
    n = i * i
    WHILE n
        s = s + n MOD 10
        n = n \ 10
    WEND
NEXT i
PRINT s

15   голосов, оценка 3.933 из 5


СОХРАНИТЬ ССЫЛКУ