在我的IT课程中,我完成了这项任务:
写入函数,其中用户放置整数m(m> 1)和非负n和 该函数返回
std::pow(n, 1.0/m)
。你不能使用任何图书馆。
这意味着,我必须使用pow功能...但我无法使用它。 由于它不是2 ^ 2或2 ^ 7,我不能使用简单的for循环。 我尝试过做任何事情,比如添加,乘法,在附近没有任何作用。
有什么想法吗?
供参考: 这不是我的功课,老师只是给了我这个学习的东西。
答案 0 :(得分:2)
std::pow(n, 1.0/m)
是m
的{{1}}根。您可以在维基百科上找到有用的algorithm of how to implement it:
n
x0
1 x = 1.0/m * [ (n-1)*x + n/pow(x,m-1) ]
仅更改一点或达到最大值。 1)显然,您需要为整数x
定义pow(x,y)
,这是微不足道的。