标题:已知:Sn= 1+1/2+1/3+…+1/n。现给出一个整数K(1<=k<=15),要求计 ...
只看楼主
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
结帖率:0
已结贴  问题点数:10 回复次数:5 
已知:Sn= 1+1/2+1/3+…+1/n。现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K
#include <stdio.h>   
int main()  
{  
    int m,n=1,sum=0;     
    scanf("%d",&m);  
    while(sum>m)
    {  sum+=1/n;
       n++;
    }
    printf("%d\n",n);
    return 0;  
}
这样写是不行的吗,难道我对while循环有误区?
搜索更多相关主题的帖子: 整数 要求 计算 最小 sum 
2017-12-21 09:46
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:5 
你int sun=0 输入m,然后while(sum>m),你认为能实现么?
2017-12-21 09:55
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
得分:0 
回复 2楼 虫眼
那是要用个do  while循环吗
2017-12-21 10:10
wanmeiwuque
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2017-12-19
得分:0 
sum<=m
它就没结果出来,好像陷在那个循环里了。
2017-12-21 10:18
山东包子
Rank: 2
等 级:论坛游民
威 望:1
帖 子:33
专家分:58
注 册:2017-12-21
得分:5 
定义变量有问题,不应该定义int型,应该是double ,另外循环设置条件也不对
&nbsp;#include <stdio.h>
int main()
{
  double sum=0;
  int n=1, m;
  printf("请输入1至15间的一个整数\n");
 scanf("%d",&m);
    if(m<1 && m>15)  //判断输入的数值合理性
    {
      printf("输入错误,程序结束\n");
      return 0;
    }

 while(n<=m)
 {
     sum+=1.0/n; //
      if(sum>n)
       {
         printf("找到的数字为%d\n",n);
       }
      n++;
 }

  printf("没有找到合适的数字\n");
 return 0;
}
2017-12-21 18:01
山东包子
Rank: 2
等 级:论坛游民
威 望:1
帖 子:33
专家分:58
注 册:2017-12-21
得分:0 
无解,我没找到这个n
2017-12-21 18:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483574-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.376833 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved