Editorial for Suma de 1 a N
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Para este problema existen dos formas sencillas de obtener la suma de los números del 1 al N: utilizando la fórmula de Gauss o recorriendo todos los números con un ciclo for.
Solución 1: Fórmula de Gauss
La fórmula para calcular la suma de los números del 1 al N es:
\[ \frac{N(N+1)}{2} \]
Por ejemplo, si N = 5:
\[ 1+2+3+4+5 = \frac{5(5+1)}{2} = 15 \]
Código de ejemplo
#include <iostream>
using namespace std;
int main(){
long long n;
cin >> n;
long long suma = n * (n + 1) / 2;
cout << suma;
return 0;
}
La ventaja de esta solución es que no importa qué tan grande sea N, el cálculo se realiza directamente con una sola fórmula. Su complejidad es O(1).
Solución 2: Utilizando un for
También podemos recorrer todos los números desde 1 hasta N y acumularlos en una variable.
Por ejemplo, para N = 5:
suma = 0
suma = suma + 1 → 1
suma = suma + 2 → 3
suma = suma + 3 → 6
suma = suma + 4 → 10
suma = suma + 5 → 15
Código de ejemplo
#include <iostream>
using namespace std;
int main(){
long long n;
long long suma = 0;
cin >> n;
for(int i = 1; i <= n; i++){
suma += i;
}
cout << suma;
return 0;
}
En este caso, el for comienza con i = 1 y continúa mientras i <= n. En cada iteración, el valor de i se agrega a suma.
Esta solución tiene una complejidad de O(N), porque el ciclo se ejecuta N veces.
Comparación
| Método | Complejidad | Idea |
|---|---|---|
| Gauss | O(1) |
Utilizar directamente n * (n + 1) / 2 |
for |
O(N) |
Sumar uno por uno todos los números |
Para aprender a programarlo, el for ayuda a entender el concepto de acumulador. La fórmula de Gauss, en cambio, es más eficiente cuando solamente necesitas obtener el resultado.
Comments