gpt4 book ai didi

c - 如果 x*x 可以容纳 32 位整数,如何返回 1,否则返回 0?

转载 作者:行者123 更新时间:2023-11-30 20:42:15 25 4
gpt4 key购买 nike

我正在研究一个问题,我应该编写一个方法如果 x*x 可以容纳 32 位整数,则返回 1,否则返回 0。
我以为我可以检查该数字是否大于 46340(可以使用 2 的补码二进制表示形式表示的最大数字的平方根。)但是我不能,因为我最多只能使用 255。

 /*
* squaredOK - Return 1 if x*x can
fit
in
a 32-bit integer, and 0 otherwise.
* Examples: squaredOK(10) = 1
* squaredOK(1000000) = 0
* Legal ops: ! ~ & ^ | + - << >>
* Max ops: 20
*/
int squaredOK(int x) {

return ; /* no idea */
}

好吧,在阅读评论后,我决定添加限制:仅使用以下内容:

  • 整数常量 0 到 255 (0xFF)(含)。不允许使用大常量,例如 0xffffffff。
  • 函数参数和局部变量(无全局变量)。
  • 一元整数运算! 〜
  • 二进制整数运算 & ^ | + << >>

最佳答案

这个问题的定义很模糊,我认为您的解释方式让您自己变得比实际需要的更加困难。

如果将“适合 32 位整数”解释为无符号 32 位整数,则最大值 (232) 的平方根为更方便的值 (216)。我非常确定这就是我们的意图。

关于c - 如果 x*x 可以容纳 32 位整数,如何返回 1,否则返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52786736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com