Anuncio de la colección de temas "Programación en lenguaje C (tercera edición)" de la edición de la Universidad de Zhejiang
Ejercicio 2-15 Encuentre la suma de los primeros N elementos en una secuencia intercalada simple (15 puntos)
Esta pregunta requiere escribir un programa para calcular la suma de los primeros N elementos en la secuencia 1-1 / 4 + 1 / 7-1 / 10 +….
Formato de entrada:
La entrada da un entero positivo N en una línea.
Formato de salida:
En una línea, envíe el valor de la suma parcial S en el formato de "suma = S", con una precisión de tres decimales. El título garantiza que el resultado del cálculo no exceda el rango de doble precisión.
Muestra de entrada:
10
Salida de muestra:
suma = 0.819
Código:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,N;
double sum=0;
scanf("%d",&N);
for(i=1; i<=N; i++)
{
if((i*3-2)%2==0)
{
sum-=1.0/(i*3-2);
}
else
{
sum+=1.0/(i*3-2);
}
}
printf("sum = %.3f",sum);
return 0;
}
Enviar resultado:
para resumir:
- Después de leer las preguntas, podemos ver que la fórmula general del término intercalado es
1/(i*3-2)*(-1)^i-1
. - La observación muestra que cuando el denominador del término general es par, el signo del término es negativo; cuando el denominador del término general es impar, el signo del término es positivo, por lo que la declaración if puede usarse para dividir la suma en dos partes.
- Dado que la suma de los primeros N términos obtenidos es de tipo double, el denominador en el término general debe escribirse como 1.0.
- Tenga en cuenta que el formato de salida debe mantenerse en 3 dígitos después del punto decimal, por lo que debe escribirse en la forma% .3f.