c语言编程。。。解不等式 n < 1+1/2+1/3+…+1/m <n+1,正整数n从键盘输入,m也为正整数,范围待定

输入输入正整数n的值。输出输出正整数m的解区间。样例输入5样例输出83<=m<=226... 输入
输入正整数n的值。

输出
输出正整数m的解区间。

样例输入
5

样例输出
83<=m<=226
展开
 我来答
汐日南莘
2013-10-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7638万
展开全部
#include <stdio.h>
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

 有不同观点的话可以追问,一起讨论!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心中风情4
2013-10-29 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1090万
展开全部
#include<stdio.h>

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);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式