级数求和

  • Post author:
  • Post category:其他


题目:

Sn=1+1/2+1/3+…+1/n

显然对于任意一个整数K,当n足够大的时候,S n大于K。

现给出一个整数K(1≤k≤15),要求计算出一个最小的n;使得Sn>K。

输入格式:

一个正整数K

输出格式:

一个正整数N

输入输出样例

输入样例

1

输出样例

2

#include<stdio.h>
int main(){
	double sn=0.0000;
	int k,n=1;
	scanf("%d",&k);
	while(sn<=k){
		sn+=1.0/n;		//这个1.0必须要用1.0的格式,若换成1,运行起来会报错的
		n++;
	}
	printf("%d",n-1);
	return 0;
}

主要就是要注意代码行里的那个注释,在一开始的时候定义的Sn是double类型的所以在后面如果不用1.0的话,将会强制转换成int类型的,暂且我是这样理解的,希望有高人看到了能够指正。



版权声明:本文为qq_41377858原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。