您的任务是计算正整数的平方根,而无需使用任何数学运算符来更改数字,例如:
- 设置变量(例如squareRoot = 5)
- 加法(A + B)
- 减法(AB)
- 乘法(A * B)
- 部门(A / B)
- 平方,立方,四等根
- 指数
就此问题而言,比较运算符(例如<,>,==等)不被视为“数学运算符”,并且允许它们,只要它们不更改变量的值即可。
您唯一可以使用的运算符是++。有以下例外情况:
- 如果需要,可以将其设置为0来初始化变量。
- 如果您的语言不包含++语法,则可以使用等效的语法,例如foo + = 1或foo = foo + 1
- 平方根应计算为小数点后的至少六位(十万位),并输出为小数点的整数(例如,如果我输入2,则根据四舍五入可以得出14142135624或1414213) 。向上或向下取整并不重要。
不允许使用用户定义的功能。另外,也不允许使用goto模拟功能。
我很想看看每个人都提交了什么!编码愉快!
澄清说明
说明该数字是一个正整数。欢迎您编写可以做任何数字的代码,但这不是必需的。
澄清#2
说明允许比较运算符。
澄清#3
加法,减法,乘法,除法和功能变化的数字都是不允许的所有,不管他们是否被保存到一个变量或没有。抱歉,这会使现有的几个答案无效,但是我想用“更改数字”定义这组运算符,以防止出现巨魔答案(例如,我只是使用sqrt()函数,您只禁止添加,乘法,除法和减法)。对困惑感到抱歉。
澄清#4
说明我们至少需要5位数字。10位数字导致代码长时间运行。
while r*r<n*10e20:r+=1
-相当琐碎。另外,您可以考虑将所需的输出减少到10 ^ 8左右。首先,因为10 ^ 10大于2 ^ 31,其次,因为要花费较高的时间会花费一些时间。