为了账号安全,请及时绑定邮箱和手机立即绑定

给出一个浮点数 c,求出使得 1/2+1/3+1/n+1的最小正整数

给出一个浮点数 c,求出使得 1/2+1/3+1/n+1的最小正整数

C++
car 2017-02-11 21:47:38
#include <stdio.h>int main() { float c; scanf_s("%f", &c); if (c >= 0.01f&&c<=5.20f) {  float d=0.0f;  float m ;  int n = 2;  while (d<c)  {      m = 1.0f /n;   d += m;   ++n;     }   printf("%d\n", n-2); } return 0;}如输入3.71,得出61我是用n-2才计算得到,这样不合理,应该如何修改
查看完整描述

1 回答

?
o学者o

TA贡献7条经验 获得超5个赞

出现多了个2是有两个原因:

  1. 题目中最后有一个+1, 所以你初始值 d 应该是 1, 或者 n 从1 开始

  2. 等到最后循环出口的时候,也就是 d < c 时已经得到 n 了,但在循环最后多计算了一次 ++n

查看完整回答
反对 回复 2017-02-11
  • car
    car
    不是这个原因, 没有多加
  • 1 回答
  • 0 关注
  • 1801 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信