题一: 级数求和 [问题描述]: 已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。现给出一个整数K(1<=K<=15),要求计算出一个最小的n,使得Sn>K [问题分析]: 这道题目非常简单,题目的意思已经把该题的算法描述得再清楚不过了,初始时Sn=0,n=0,然后每次循环nn+1,SnSn+1/n,,直到Sn大于K,最后输出K。另外实型(Real是最慢的,建议用Extended)的运算速度不是很快,而K为115之间的整数,所以最后可以交一张表(常量数组),以达到最好的效果 [参考程序]: {$N+} program c1; var K: Byte; n: Longint; Sn: Extended; begin Readln(K); Sn := 0; n := 0; Repeat Inc(n); Sn := Sn + 1 / n; Until Sn > k; Writeln(n); end.