Расчёт суммы цифр в промежутке на Leo feat. ChatGPT.
Привет! В данной статье мы напишем несколько программ на языке программирования Leo, которые находят сумму чисел в данном промежутке. Если вы не читали мои предыдущие статьи и видео, рекомендую с ними ознакомиться. У меня много контента по языку Leo, а также по проекту Aleo.
Данная статья есть в видео-формате по ссылке.
Первая программа будет определять просто сумму чисел, а далее мы модифицируем нашу программу и сможем считать только четные или нечетные числа.
Открываем Aleo Studio и создаем новую программу.
В данном случае не понадобится изменять входные переменные программы, так как мы не будем их использовать. На выходе же переменная типа u32 - это будет сумма цифр в диапазоне.
transition main(n: u32) -> u32 {
Теперь создаем переменную, которая будет хранить в себе сумму чисел, мы будем выводить её по результатам работы программы.
По умолчанию присвоим ей значение 0.
Далее создаем цикл for. С помощью него мы и будем считать сумму цифр
Последнее число, в данном случае 3, определяет до какого числа мы будем считать. Если мы указываем 3, то будет сумма 1 и 2, то есть 3 в этот диапазон не входит.
Теперь осталось прописать оператор сложения.
Возвращаем переменную f и всё, можно запускать программу.
Например, при диапазоне от 0 до 5, на выходе мы получим 10 (сумма цифр от 0 до 4).
program sum_2.aleo {
transition main(n: u32) -> u32 {
let f: u32 = 0u32;
for i: u32 in 0u32..3u32 {
f = f + i;
}
return f;
}
}
Теперь давайте посчитаем только четные числа
Для этого добавялем условный оператор if. Если остаток от деления на 2 равен 0 (то есть число четное), тогда мы выполняем сложение, иначе пропускаем данное действие.
Если же мы считаем не четные числа, тогда пишем не равен 0:
Теперь давайте попросим ChatGPT объяснить этот код.
program sum.aleo
: Это объявление программы с именем "sum".transition main(n: u32) -> u32 {
: Это объявление функции (перехода) с именемmain
, которая принимает один аргумент типаu32
(беззнаковое 32-битное целое число) и возвращает значение типаu32
.let f: u32 = 0u32;
: Объявляется переменнаяf
типаu32
(беззнаковое 32-битное целое число) и инициализируется значением 0.for i: u32 in 0u32..3u32 {
: Начинается циклfor
, который будет перебирать значения переменнойi
от 0 до 2 (включительно). Обратите внимание, что верхний предел (3u32) не включается.if i.rem(2u32) != 0u32 {
: Здесь производится проверка на нечетное значениеi
, используя метод.rem()
(остаток от деления) для переменнойi
на 2. Если остаток не равен 0, то выполняется следующий блок кода.f = f + i;
: Если значениеi
нечетное, то к переменнойf
добавляется значениеi
.return f;
: По завершении цикла возвращается значение переменнойf
.
Таким образом, эта программа вычисляет сумму всех нечетных чисел от 0 до 2 (включительно) и возвращает эту сумму. В данном случае, сумма нечетных чисел от 0 до 2 равна 1 (1 + 0).
Вывод.
Надеюсь, наш тандем с ChatGPT достаточно подробно объяснил принцип действий при реализации данной задачи. До встречи в следующей статье!