题目:
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 版权协议,转载请附上原文出处链接和本声明。