smartZhou


私信TA

用户名:smartZhou

访问量:4852

签 名:

刚注册不到一个月,多多关照!

等  级
排  名 61
经  验 4648
参赛次数 1
文章发表 97
年  龄 0
在职情况
学  校 T S university
专  业 计算机科学与技术

  自我简介:

题目描述:

计算t=1+1/2+1/3+...+1/n

保留六位有效小数。


解题思路:

令i从1到N;

把所有 1/i 加起来;

输出和,保留六位小数;


注意事项:

参考代码:

#include <stdio.h>
int main()
{
	int N;
	double i,sum=0;
	scanf("%d",&N);
	for(i=1; i<=N; i++)
	{
		sum+=1.0/i;
	} 
	printf("%.6lf",sum);
}

题目扩展:

计算t=1-1/2+1/3-1/4+1/5.....1/n

保留六位有效小数。


解题思路:

加一个正负标志flag。每次发生正负变换。

参考代码:

#include <stdio.h>
int main()
{
	int N,flag=1;
	double i,sum=0;
	scanf("%d",&N);
	for(i=1; i<=N; i++)
	{
		sum+=flag*(1.0/i);
		flag*=-1;
	}
	printf("%.6lf",sum);
}


C语言网提供「C语言、C++、算法竞赛」在线课程,全部由研发工程师或ACM金牌退役选手亲自授课,以视频+配套题目的学练同步模式教学,强化动手,并提供增值服务!

  评论区