将自制的战俘功能定义为练习

时间:2017-11-23 14:26:16

标签: c++ pow sqrt

在我的IT课程中,我完成了这项任务:

  

写入函数,其中用户放置整数m(m> 1)和非负n和   该函数返回std::pow(n, 1.0/m)。你不能使用任何图书馆。

这意味着,我必须使用pow功能...但我无法使用它。 由于它不是2 ^ 2或2 ^ 7,我不能使用简单的for循环。 我尝试过做任何事情,比如添加,乘法,在附近没有任何作用。

有什么想法吗?

供参考: 这不是我的功课,老师只是给了我这个学习的东西。

1 个答案:

答案 0 :(得分:2)

std::pow(n, 1.0/m)m的{​​{1}}根。您可以在维基百科上找到有用的algorithm of how to implement it

  1. 初步猜测n
  2. 设置x0 1
  3. 重复步骤2,直到x = 1.0/m * [ (n-1)*x + n/pow(x,m-1) ]仅更改一点或达到最大值。
  4. 1)显然,您需要为整数x定义pow(x,y),这是微不足道的。