csharp基础练习题:英雄的根【难度:1级】:
第一算法的一个用于近似的正整数N
的整数平方根被称为"英雄的方法",
亚历山大的第一个世纪的希腊数学家英雄是谁给了第一次描述而得名
的方法.可以从里面传来后,16个世纪的牛顿的方法来获得英雄的方法.
我们近似的数通过采取初始猜测
x,误差
e并反复计算新的近似* 整数* 值
x使用N
的平方根:(X + N / X)/ 2
;当以前x
和新x
有一个绝对差值小于e
我们完成.
我们提供的功能(int_rac)一些N
(正整数)和参数guess
(正整数),这将是我们最初的x
.对于这个KATA参数"E"设置为1
.
英雄的算法并不总是要来完全正确的结果!例如:当n = 25,我们得到5,但对于n = 26,我们也得到5.然而5
是* 整数*的26
平方根.
习题是返回整数逼近,该算法使得进程的计数.
引用:
一些例子:
int_rac(25,1):如下的[1,13,7,5]一个进展,以便我们的函数应该返回4.
int_rac(125348,300):有[300358354]所以我们的函数返回3进展.
int_rac(125348981764,356243):有[356243,354053,354046]一个进展,以便我们的函数返回3.
您可以使用Math.floor(或类似)对于每个整数逼近.
注意对JavaScript,Coffescript,打字稿:
如果你想拥有同样的结果在测试和其他语言,请不要使用双按位在每次迭代不~~.
编程目标:
using System;
public class IntSqRoot
{
public static long IntRac(long n, long guess)
{
// your code
}
}
测试样例:
using System;
using NUnit.Framework;
[TestFixture]
public static class IntSqRootTests {
[Test]
public static void test1() {
Assert.AreEqual(4, IntSqRoot.IntRac(25, 1));
}
13
最佳答案(多种解法):
更多关联题目:
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/heros-root