ZZULIOJ题解
1040: 数列求和1
题目描述
输入一个整数n,输出数列1+1/3+1/5+……前n项的和。
输入
输入只有一个正整数n。
输出
结果保留2位小数,单独占一行
样例输入
3
样例输出
1.53
本题是对循环语句的考察,这里的几个数列求和,考察了阶乘如何依靠循环来实现,同时也对标志数有了一个考察
代码
#include<stdio.h>
int main()
{
int n,i;//定义数字n和循环次数i
double z,m,sum;//定义分子z和分母m以及和sum
scanf("%d",&n);//键盘输入数字n的值
sum=0,m=1,z=1;//给分子分母和赋初值,这个操作也可以在定义时实现
/*也可以分开赋值写成
sum=0;
m=1;
z=1;*/
for(i=1;i<=n;i++)//循环n次
{
sum=sum+1.0*z/m;//sum每次进行累加计算
m=m+2;//分母每次+2
z=z;//分子不变等于1
}
/*这里的sum在前面累加也完全可以放在分子分母发生变化之后
sum=0,m=-1,z=1;
for(i=0;i<n;i++)//不同的语句顺序在不同条件下可以实现相同的功能
{
m=m+2;//分母每次+2
z=z;//分子不变等于1
sum=sum+1.0*z/m;//sum每次进行累加计算
}
*/
printf("%.2lf",sum);//输出结果h的值,保留两位小数
return 0;//程序正常退出
}