NOI的1.5.27级数求和

27:级数求和
总时间限制: 1000ms 内存限制: 65536kB
描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入
一个整数K。
输出
一个整数n。
样例输入
1
样例输出
2

解法一:

public static void main(String[] args) {
	Scanner in =new Scanner(System.in);	
	int n,k,i=1;
	k=in.nextInt();
	double sum=0;
	while(sum<=k){
		sum=sum+(double)1/i;
		//int与int相除不能直接转化为double,需要使用(double)1/i强制转换
		//不然会出现丢失小数位情况;
		i++;
	}
	n=i-1;
	System.out.println(i-1);
}

解法二:

	public static void main(String[] args) {
	Scanner in =new Scanner(System.in);	
	int n,k,i=1;
	k=in.nextInt();
	double sum=0;
	for(i=1;;i++) {
		sum=sum+(double)1/i;	
		if(sum>k) {
			n=i;
			break;
		}
	}
	System.out.println(n);
	}
	}
发布了15 篇原创文章 · 获赞 16 · 访问量 369

猜你喜欢

转载自blog.csdn.net/weixin_45455503/article/details/104145012
今日推荐