你做个函数计算分母就行了,然后倒数求和,当和值在指定范围内就OK
#include<stdio.h>
int main()
{
double fm = 0,sum = 0;
int n,m,i,k = 1;
int min = 0;
scanf("%d,%d",&n,&m);
while(sum < m)
{
fm += 1.0/k;
k++;
sum += 1/fm;
if(sum > n && sum < m && min == 0)
min = k;
}
printf("%d<=n<=%d\n",min,k);
return 0;
}
仅供参考
#include <stdio.h>
void resolution(int m, int n)
{
double sum_t = 1;
double sum = 1;
for (int i = 2; ; i++) {
double temp = (double)1 / i;
sum_t += temp;
sum += 1 / sum_t;
if (sum > m && sum < n) {
printf("n= %d\n", i);
} else if (sum >= 2011) {
break;
}
}
}
int main()
{
resolution(2010, 2011);
return 0;
}