Red de conocimientos turísticos - Información de alquiler - ¿Preguntas de programación sobre la suma de secuencias aritméticas y geométricas en C++?

¿Preguntas de programación sobre la suma de secuencias aritméticas y geométricas en C++?

Esto se hace a través de un bucle, no estoy seguro si se puede decir que es una plantilla, por ejemplo el primer bucle:

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.