#include<stdio.h>
int main()
{
int a, b, m;
scanf("%d %d", &a, &b);
double ans=0;
double sum=0;
int n=1;
double j=0;
double x=0;
int jishu=0;
while(1)
{
#构建函数中的一项
j=1.0/n;
n++;
sum=sum+j;
x=1.0/sum;
#求和
ans=ans+x;
#判断是否满足条件
if(ans>a)
{
jishu++;
#如果第一次满足
if(jishu==1)
{
#记录此时n值,并直接输出(应该是输出n-1,n这里代表第几轮)
m=n;
printf("%d", n-1);
}
#如果发现不满足条件
if(ans>b)
{
#首先判断是否和第一次满足条件的输出值相同
if(m==n-1)
{
#如果相同,说明答案是一个整数,而不是一个区间,退出循环
break;
}
#否则说明答案是一个区间,输出一个空格和最后满足条件的值(上一轮的值,即n-1-1)来符合题目要求,退出循环
else
{
printf(" %d", n-1-1);
break;
}
}
}
}
return 0;
}
C语言:设n为正整数,求解n使不等式a<;1+1/(1+1/2)+1/(1+1/2+1/3)+.......+1(1+1/2+...+1/n)<;b成立,输出可能为区间也可能是整数
于 2020-03-31 16:19:12 首次发布