洛谷1035
- 题意:
级数求和
已知:S_n= 1+1/2+1/3+…+1/。显然对于任意一个整数 k,当 n 足够大的时候,S_n>k现给出一个整数 k,要求计算出一个最小的 n,使得 S_n>k
- 解题:
暴力解题不难,但是注意精确度问题。刚开始sum定义为float类型测例3和5不能通过,后来将其定义为double类型,通过 - 代码
/* 级数求和 已知:S_n= 1+1/2+1/3+…+1/。显然对于任意一个整数 k,当 n 足够大的时候,S_n>k 现给出一个整数 k,要求计算出一个最小的 n,使得 S_n>k */ #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int main() { int k, n; cin >> k; double sum = 0; for (n = 1; ; n++) { sum = sum + (1.0) / n; if (sum > k) break; } cout << n; return 0; }

浙公网安备 33010602011771号