Найти общую сумму цифр всех квадратов чисел от 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»
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
Объяснение кода листинга программы
В этом коде используется цикл от 1 до 100 для прохода по всем числам в заданном диапазоне. Для каждого числа вычисляется квадрат числа, затем в цикле while результат разбивается на цифры, и каждая цифра добавляется к переменной s. Значение переменной s в конце выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д