本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m2+1/m+(m+1)2+1/(m+1)+⋯+n2+1/n。
输入格式:
输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例:
5 10
输出样例:
sum = 355.845635
代码:
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
int m,n;
int i;
double total_sum = 0;
double part_1_sum = 0; //奇数和
double part_2_sum = 0; //偶数和
scanf("%d%d",&m,&n);
for (i = m; i <= n; i++)
{
part_1_sum += pow(i, 2);
part_2_sum += 1.0/i;
}
total_sum = part_2_sum + part_1_sum;
printf("sum = %.6lf",total_sum);
}
思路:
由题目可以看出当奇数项和偶数项算法不同,但m值相等,那把便可以将两项看成一个循环(即一个循环可以完成两项的算法)n不变,即可做出题目