¿Cuál es el algoritmo de la suma de los primeros 20 números naturales?

imprimir 210

Ese es el algoritmo de Python para la suma de los primeros 20 números naturales.

Verá, no necesita hacer nada interesante para resolver una instancia particular de un problema. ¡Solo imprime la respuesta! Se ejecuta en O (1)!

Resulta que no es mucho más complejo encontrar la suma de los primeros n enteros:

imprimir n * (n + 1) / 2

O incluso la suma de enteros en un rango:

print (inicio + fin) * (fin-inicio + 1) / 2

O la suma de n términos de una secuencia aritmética con diferencia común d que comienza en a :

imprimir n * a + n * (n-1) * d / 2

La razón por la que este trabajo requiere pruebas, que sería una respuesta diferente, pero debería ser fácil ver por qué lo siguiente debería funcionar:

imprimir suma (rango (a, a + n * d, d))

Sin embargo, este es O (n).

Soy un desarrollador de software que trabaja con el lenguaje APL, así que aquí está el código APL completo y el resultado:

+/⍳20

210

Y, gracias al matemático alemán Carl Friedrich Gauss (1777-1865), existe una fórmula simple para calcular la suma de los primeros n números: (n*(n+1)) / 2 . (ver aquí para explicación)

[matemática] \ text {Salida} 210 [/ matemática].

Cuando un problema se define de manera tal que la respuesta es única, es una solución válida simplemente producir esta respuesta precalculada.

Si no desea calcular el resultado usted mismo, también puede hacer que el compilador lo haga por usted.

[matemática] \ text {Salida} 1+ 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 [/ matemática ]

Se obtiene una solución menos trivial por la construcción recursiva

[matemáticas] \ text {Sum} (\ text {UpTo}): = \ text {if UpTo} = 1 \ to1 \ text {else} \ to \ text {UpTo} + \ text {Sum} (\ text {UpTo } – 1) [/ matemáticas]

[matemática] \ text {Suma de salida} (20) [/ matemática]

Paso 1: inicie dos variables, una para almacenar la suma (inicialícela con 0) y otra para aumentar el contador

Consideré la suma, c como mis variables

Paso 2: escriba una condición para el ciclo “for”, que indica que el ciclo debe ejecutarse 20 veces a partir de 1. Y dentro del ciclo for, debe agregar cada no obtener, así que escriba el código como “sum = sum + c”.

para (c = 1; c <= 20; c ++)

Suma + = c;

Paso 3: imprima el valor almacenado en suma variable

Eso es !!!!

para (i = 1, S = 0; i <= 20; i ++) {
S + = i;
}

Eso es.

Además, simplemente puede usar la fórmula S = n * (n + 1) / 2; donde int n = 20;

Aquí está el algoritmo:

210

Bueno, es muy simple.

Todo lo que necesitas hacer es inicializar dos variables.

Digamos yo y suma.

Inicialice i = 1 y sum = 0 ya que en el momento inicial no hay nada en la suma, entonces sum = 0 y como es la suma del no natural. Entonces i = 1.

Entonces necesita un bucle que agregue recursivamente el valor de i en suma y también lo incremente cada vez.

Así que aquí está el código en C

para (i = 1; i <21; i ++)

suma = suma + i;

Eso es todo.

Espero que esto sea informativo para ti.

CODIFICACIÓN FELIZ 🙂

Otra pregunta de examen 🙁

Sugerencia, si puede visualizar los primeros N números como un triángulo, puede resolverlo usted mismo. De hecho, si adoptas un enfoque geométrico, deberías poder llegar a ecuaciones para resolver la suma de cualquier rango con cualquier paso. Ciertamente, no es necesario usar nada tan crudo como un bucle. Simplemente comience con un lápiz y papel y dibuje algunos histogramas.