¿Preguntas de programación sobre la suma de secuencias aritméticas y geométricas en C++?
int nSum;
for(nSum = 0, int i = 1; i <= N; i++) // N es un valor definido como el valor del último n en la fórmula que proporcionaste.
nSum += 2*i-1;
Optimización: debido a que es 2*i, es mejor usar shift: nSum += (i << 1) - 1 ; Además, debido a que cada resta es una constante 1 y la multiplicación también es una constante, se puede escribir así, que es más rápido:
int nSum;
for(nSum = 0; , int i = 1; i <= N; i++)
nSuma += i;
nSuma = nSuma << 1;
nSuma -= ( N+1 );
En realidad, esto básicamente tiene escrita la fórmula de suma, así que, por supuesto, puedes usar esa fórmula para calcular más rápido.
Luego está el segundo:
Long nProduct = 0;
for(int i = 0; i <= N; i++)
nProduct += 5 * power(2, i);
Optimización: No llame a power, use shift: nProduct += 5 *( 1 << i);
Según la primera idea, usted mismo debería conocer la optimización adicional.