Расчёт суммы цифр в промежутке на 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 достаточно подробно объяснил принцип действий при реализации данной задачи. До встречи в следующей статье!