#include
int main()
{
int n,i=1;
int temp;
bool t=true;
scanf("%d",&n);
double sum=0;
while(sum<=(n+1))
{
sum=sum+(double)1/i;
if((sum>n)&&t)
{
temp=i;
t=false;
}
i++;
}
// printf("%0.9lf\n",sum); 这里加个输出看看sum是多少我觉得你的结果可能不正确
printf("%d<=m<=%d\n",temp,i-1);
}
//我输入5时 83<=m<=227而不是226 当m是226时sum要小于6
有不同观点的话可以追问,一起讨论!
#include
void main() {
int n, i = 1;
int min_m =-1, max_m = -1;
double sum = 0.0;
scanf("%d",&n);
while (1){
sum += 1.0/i;
if((min_m == -1) && (sum >= (double)n)) {
min_m = i;
}
if((max_m == -1) && (sum >= (double)(n+1))) {
max_m = i -1;
break;
}
++i;
}
printf("%d<=m<=%d\n",min_m, max_m);
}