Как найти сумму натуральных чисел на питоне

В данной статье мы расскажем, как на Python вычисляется сумма и среднее значение первых n натуральных чисел. Кроме того, мы разберем, как найти сумму чисел, введённых пользователем, и их среднее значение. Также мы рассмотрим встроенную функцию sum() и вычисление среднего значения списка чисел.

Содержание

  • Сумма и среднее значение первых n натуральных чисел
    • Встроенная функция sum()
  • Сумма и среднее значение списка чисел
  • Вычисление суммы и среднего значения при помощи математической формулы
  • Сумма и среднее значение чисел, введенных пользователем
  • Использование цикла while для вычисления суммы и среднего значения
  • Практическая задача: сложение двух матриц в Python

    Алгоритм решения данной задачи:

    1. Принимаем значение числа n от пользователя. Для этого используется функция input().
    2. Затем запустим цикл for до введенного числа, используя для этого функцию range(). На каждой итерации мы будем получать следующее число, пока цикл не достигнет последнего числа, то есть n.
    3. Вычислим сумму всех этих чисел. Для этого на каждой итерации цикла будем добавлять число к переменной sum.
    4. И наконец, после завершения цикла вычислим среднее значение по формуле: average = sum / n, где n – это число, введенное пользователем.

    Код программы:

    n = int(input("Enter number"))
    sum = 0
    # Цикл от 1 до n
    for num in range(1, n + 1, 1):
        sum = sum + num
    print("Sum of first ", n, "numbers is: ", sum)
    average = sum / n
    print("Average of ", n, "numbers is: ", average)

    Результат:

    Enter number 10
    Sum of first  10 numbers is:  55
    Average of  10 numbers is:  5.5

    Встроенная функция sum()

    Для вычисления суммы элементов итерируемых объектов, таких как список или функция range(), можно также воспользоваться встроенной функцией sum().

    n = 10
    res = sum(range(1, n + 1))
    print("Sum of first ", n, "numbers is: ", res)
    
    # Результат:
    # Sum of first  10 numbers is:  55

    Сумма и среднее значение списка чисел

    Для вычисления суммы всех чисел списка и их среднего значения нужно сделать следующее:

    • Проитерировать список при помощи цикла for и прибавить каждое число к переменной sum.
    • Для вычисления среднего значения разделить полученную сумму на число элементов списка (его длину, вычисляемую при помощи встроенной функции len()).
    # Список со значениями int и float
    num_list = [10, 20.5, 30, 45.5, 50]
    
    # Первый подход, с использованием встроенной функции sum
    res = sum(num_list)
    avg = res / len(num_list)
    print("sum is: ", res, "Average is: ", avg)
    
    # Результат:
    # sum is:  156.0 Average is:  31.2
    
    
    # Второй подход, с использованием цикла for
    res1 = 0
    for num in num_list:
        res1 += num
    avg1 = res1 / len(num_list)
    print("sum is: ", res1, "Average is: ", avg1)
    
    # Результат:
    # sum is:  156.0 Average is:  31.2

    Вычисление суммы и среднего значения при помощи математической формулы

    В приведенных выше программах мы вычисляли сумму и среднее при помощи циклов. Теперь давайте посмотрим, как рассчитать сумму и среднее значение напрямую, используя математическую формулу суммы арифметической прогрессии.

    Пусть n это последнее число нашей последовательности первых n натуральных чисел. Тогда:

    • сумма n натуральных чисел будет равна n * (n+1) / 2
    • а их среднее значение – (n * (n+1) / 2) / n

    Пример:

    n = 20
    # Формула для вычисления суммы
    res = n * (n + 1) / 2
    print('sum of first', n, 'numbers is:', res)
    
    # Результат: 
    # sum of first 20 numbers is: 210.0
    
    
    # Формула для вычисления среднего
    average = (n * (n + 1) / 2) / n
    print('Average of first', n, 'numbers is:', average)
    
    # Результат:
    # Average of 20 numbers is: 10.5

    Сумма и средние значение нескольких чисел, введённых пользователем

    А вот как можно рассчитать сумму и среднее значение нескольких введённых пользователем чисел:

    input_string = input('Enter numbers separated by space ')
    print("n")
    # Преобразуем введённые числа в список
    numbers = input_string.split()
    
    # Приводим числа к типу int
    for i in range(len(numbers)):
        numbers[i] = int(numbers[i])
    
    # Вычисляем сумму и среднее значение
    print("Sum = ", sum(numbers))
    print("Average = ", sum(numbers) / len(numbers))

    Результат:

    Enter numbers separated by space 10 20 30 40 50
    
    Sum =  150
    Average =  30.0

    Использование цикла while для вычисления суммы и среднего значения

    Для вычисления суммы первых n чисел и их среднего значения также можно использовать цикл while.

    Вот возможный алгоритм:

    1. Определяем число n
    2. Запускаем цикл while до тех пор, пока n будет больше 0
    3. В каждой итерации добавляем текущее значение n к переменной sum и уменьшаем n на 1
    4. Вычисляем среднее значение, разделив сумму на n
    n = 20
    total_numbers = n
    sum = 0
    while n >= 0:
        sum += n
        n -= 1
    print("sum =", sum)
    
    # Результат
    # sum = 210
    
    
    average = sum / total_numbers
    print("Average = ", average)
    
    # Результат:
    # Average =  10.5

    Практическая задача: сложение двух матриц в Python

    matrixOne = [[6,9,11],
        [2 ,3,8]]
    
    matrixTwo = [[15,18,11],
        [26,16,19]]
    
    # Инициализируем нулями матрицу, в которую будет сохранен результат
    result = [[0,0,0],
             [0,0,0]]

    Решение данной задачи:

    matrixOne = [[6,9,11],
        [2 ,3,8]]
    
    matrixTwo = [[15,18,11],
        [26,16,19]]
    
    result = [[0,0,0],
             [0,0,0]]
    
    # Сначала перебираем строки
    for i in range(len(matrixOne)):
       # Затем перебираем столбцы
       for j in range(len(matrixOne[0])):
           result[i][j] = matrixOne[i][j] + matrixTwo[i][j]
    print("Addition of two Matrix In Python")
    for res in result:
       print(*res)

    Результат:

    Addition of two Matrix In Python
    21 27 22
    28 19 27

    Перевод статьи “Python program to calculate sum and average of first n natural numbers”.

    You can use while loop to successively increment value of a variable i by one and adding it cumulatively.

    s,i=0,0
    n=10
    while i<n:
       i=i+1
       s=s+i
    print ("sum of first 10 natural numbers",s)

    For loop is also used to loop over a range of natural numbers and add them cumulatively.

    s=0
    for i in range(11):
       s=s+i
    print ("sum of first 10 natural numbers",s)

    Lastly using the built in function sum() also gives sum of a range of numbers

    s=sum(range(11))
    print ("sum of first 10 natural numbers",s)

    Решение задач в Python. Сумма ряда натуральных чисел

    Попробуем на практике разобрать работу циклов, про которые рассказано в одном из наших уроков. Выполним предложенное задание, использовав несколько разных методик и видов циклов.

    Задача

    Программа выводит сумму первых членов натурального ряда чисел до введённого n-числа включительно.

    Решение задачи с помощью цикла while

    Произведём расчёт, используя цикл с предусловием while.

    n=int(input(Введите последнее число из ряда натуральных чисел=))
    
    i=1
    s=0
    while i<=n:
    s=i+s
    i=i+1
    print (Сумма чисел от 1 до, n, =, s)

    1. Сперва задаем в переменную n самое большое натуральное число (в пределах разумного).
    2. Обнулим на входе сумму s.
    3. Цикл будет выполняться до тех пор, пока внутренняя переменная не достигнет значения n.

    Результат выполнения программы

    Решение задачи с помощью цикла for

    Быстрее происходит расчёт при помощи цикла for.

    n=int(input(Введите последнее число=))
    
    s=0
    for i in range(1,n+1):
    s=i+s
    print (Сумма чисел от 1 до, n, =, s)

    Посмотрите, в цикле записано максимальное число не n, а n+1. Это связано с тем, что цикл должен выполняться на один шаг больше, чтобы последнее значение промежуточной суммы было учтено.

    Результат выполнения программы

    сумма чисел на питоне

    Решение задачи с помощью списка

    Ту же самую задачку можно решить, используя список. По сути, это ничего не меняет, но, как видите, код при этом занимает всего две строки:


    n=int(input(Введите последнее число=))
    print (Сумма чисел от 1 до, n, =, sum([i for i in range(1,n+1)]))

    Результат выполнения программы

    сумма чисел на питоне

    Задача на последовательность Функция перевода целого двоичного числа в десятичное

    На чтение 4 мин Просмотров 13.1к. Опубликовано

    Нахождение суммы цифр в числе — одна из базовых операций, которую может потребоваться выполнить в процессе программирования. Она может быть использована в различных задачах, например, при работе с кредитными картами, номерами телефонов и другими идентификаторами. Кроме того, вычисление суммы цифр может быть полезно для анализа данных, обработки информации и решения различных математических задач. В Python существует несколько способов нахождения суммы цифр в числе, которые мы рассмотрим в этой статье.

    Содержание

    1. Способы нахождения суммы цифр в числе
    2. Способ 1: Использование цикла и операции взятия остатка от деления
    3. Способ 2: Преобразование числа в строку и использование цикла
    4. Способ 3: Использование рекурсии

    Способы нахождения суммы цифр в числе

    Существует несколько способов нахождения суммы цифр в числе с использованием языка Python. Один из самых простых способов — это использование цикла и арифметических операций. Второй способ — это преобразование числа в строку и последующее суммирование цифр с помощью цикла. Также можно использовать рекурсию для нахождения суммы цифр в числе. В этой статье мы рассмотрим все эти методы подробнее и покажем, как их использовать в Python.

    Способ 1: Использование цикла и операции взятия остатка от деления

    Один из наиболее простых способов найти сумму цифр в числе заключается в использовании цикла и операции взятия остатка от деления. Идея заключается в том, чтобы последовательно извлекать цифры из числа путем нахождения остатка от деления на 10 и добавлять их в сумму. Затем нужно целочисленно разделить число на 10 и продолжить процесс до тех пор, пока число не станет равным 0. Когда число станет равным 0, сумма цифр в числе будет содержаться в переменной суммы, которую мы и будем возвращать.

    Приведём пример:

    number = 12345
    sum = 0
    
    while number > 0:
        digit = number % 10
        sum += digit
        number //= 10
    
    print("Сумма цифр числа:", sum)

    В этом примере мы начинаем с числа number и инициализируем переменную sum нулевым значением. Затем мы запускаем цикл, который будет выполняться, пока number больше нуля.

    На каждой итерации цикла мы используем операцию взятия остатка от деления на 10, чтобы получить последнюю цифру числа. Мы добавляем эту цифру к переменной sum, чтобы накапливать сумму цифр, и затем целочисленно делим number на 10, чтобы удалить последнюю цифру числа.

    Когда цикл завершается, мы выводим значение переменной sum, которое представляет собой сумму цифр числа.

    Способ 2: Преобразование числа в строку и использование цикла

    Другой способ нахождения суммы цифр в числе состоит в преобразовании числа в строку и последующем проходе по каждому символу в строке с целью получения числа и добавления его в общую сумму. Данный подход может показаться более интуитивным, так как позволяет оперировать с каждой цифрой непосредственно как с символом. Однако, для больших чисел, этот подход может занять больше времени и занимать больше памяти, чем использование операции взятия остатка от деления.

    Приведём пример:

    num = 12345
    sum_digits = 0
    for digit in str(num):
        sum_digits += int(digit)
    
    print("Сумма цифр числа", num, "равна", sum_digits)

    В этом примере мы сначала определяем исходное число num. Затем мы инициализируем переменную sum_digits нулем, которая будет использоваться для хранения суммы цифр в числе. Мы затем используем цикл for для перебора каждой цифры в числе num, которое мы преобразуем в строку с помощью функции str(). Внутри цикла мы преобразуем каждую цифру обратно в целое число с помощью функции int() и добавляем его к сумме цифр sum_digits.

    Наконец, мы выводим сообщение, которое отображает исходное число num и его сумму цифр.

    Способ 3: Использование рекурсии

    Еще одним способом нахождения суммы цифр числа в Python является использование рекурсии. Рекурсивная функция — это функция, которая вызывает саму себя. Для решения этой задачи мы можем написать рекурсивную функцию, которая будет находить сумму цифр числа, путем разделения числа на цифры и вызова функции для каждой цифры. На каждом уровне рекурсии мы будем добавлять текущую цифру к сумме, а затем вызывать функцию с оставшейся частью числа.

    Преимущество рекурсивного подхода заключается в том, что он более компактен и элегантен, чем циклический подход, и может использоваться для решения широкого спектра задач.

    Приведём пример:

    def sum_of_digits(n):
        if n < 10:
            return n
        else:
            return n % 10 + sum_of_digits(n // 10)

    Эта функция принимает целое число n и рекурсивно находит сумму его цифр. Если число n меньше 10, то оно возвращается, так как оно само по себе является суммой своих цифр. В противном случае, функция находит последнюю цифру числа n с помощью операции взятия остатка от деления на 10 (n % 10), а затем вызывает себя же для нахождения суммы оставшихся цифр числа (sum_of_digits(n // 10)). Результатом работы функции является сумма всех цифр числа n.

    Например, вызов sum_of_digits(123) вернет 6, так как сумма цифр числа 123 равна 1 + 2 + 3 = 6.

    Example

    If I wanted to find out the sum of numbers from 1 to n where n is a natural number, I can do 1 + 2 + 3 + 4 + ... + (several hours later) + n. Alternatively, I could write a for loop:

    n = 0
    for i in range (1, n+1):
        n += i
    

    Or I could use a technique known as recursion:

    def recursion(n):
        if n == 1:
            return 1
        return n + recursion(n - 1)
    

    Recursion has advantages over the above two methods. Recursion takes less time than writing out 1 + 2 + 3 for a sum from 1 to 3. For recursion(4), recursion can be used to work backwards:

    Function calls: (
    4 ->
    4 + 3 ->
    4 + 3 + 2 ->
    4 + 3 + 2 + 1 ->
    10
    )

    Whereas the for loop is working strictly forwards:
    (
    1 ->
    1 + 2 ->
    1 + 2 + 3 ->
    1 + 2 + 3 + 4 ->
    10
    ). Sometimes the recursive solution is simpler than the iterative solution. This is evident when implementing a reversal of a linked list.

    Понравилась статья? Поделить с друзьями:
  • We cant record right now try again later как исправить
  • Найти информацию как гадать
  • Как найти контакты организации бесплатно
  • Как найти повреждение проводки в квартире
  • Как найти векторы в треугольнике по координатам