当四舍五入一个数字时,如果下一位数字是>= 5您加1。例如:
3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416 <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159
3.1415926535 rounded to 9dp is 3.141592654 <-- Note the 3 changed to 4
您面临的挑战是接收一个整数作为输入并输出小数位数,然后在该位数之前四舍五入该数字的平方根-即出现的数字位数之前的小数位数>= 5。
整数将在0到100,000之间(含0和100,000),因此对于59752的边缘情况,您需要支持17个小数点(以检查第17位)。
如果您的编程语言无法更改小数点位数,则可以显示“?” 给用户的信息。
例:
Input Root Output
5 -> 2.23 606797749979 -> 2
41 -> 6.40312423 743284 -> 8 (Largest gap under 100)
596 -> 24.4131112314 674 -> 10 (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16 (Largest gap under 100000)
在理想的正方形上做您想做的事。
这是代码高尔夫球,因此最短的代码获胜。
对于任何有兴趣的人,数字310,617是1,000,000以下的最大数字,在达到数字前有18 >= 5。
我们最多需要支持多少个小数位?-没有语言可以无限精确地存储。
—
蓝色
不确定为什么,但是我得到了SQRT(59752)的17位数字(两种不同的语言)。其他结果正确显示。
—
乔纳森·里奇·佩平
@ JonathanLeech-Pepin您是否出于某种原因包括了最后一位数字?或者您的程序不支持足够的小数位。
—
2015年
它的位数永远不会大于5。例如,我的程序将以-1退出
—
蓝色
@muddyfish很好。
—
蒂姆(Tim)