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

#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才计算得到,这样不合理,应该如何修改

car
浏览 1802回答 1
1回答

o学者o

出现多了个2是有两个原因:题目中最后有一个+1, 所以你初始值 d 应该是 1, 或者 n 从1 开始等到最后循环出口的时候,也就是 d < c 时已经得到 n 了,但在循环最后多计算了一次 ++n
打开App,查看更多内容
随时随地看视频慕课网APP