gpt4 book ai didi

c - 找到最小 n 的快速方法,以便 X <= n*n

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:32 25 4
gpt4 key购买 nike

抱歉标题不好。我找不到更好的标题。 (欢迎编辑:p)

假设有一个数字 X=8。我知道 2*2=4 所以它不包含数字 8。

编辑:想象一个 2x2 网格 ... 1,2,3,4 ...它不包含 8

现在,3*3 = 9,我们找到了获胜者 (n=3)!

为此目的我的(糟糕的)代码

 long long int i=0; N = 8;
while (i*i <N)
{
i++;
}
l = i; // l is to store he number "3"; say 8 is in a 3x3 grid

当 N = 100000000 时,这不是一种有效的计算方法。

获取包含 X 的 i*i 的更有效方法是什么?

最佳答案

使用 sqrt来自 <math.h> 的函数.这将是一个(相当)有效的算法,并且应该比你的循环运行得快得多。然后四舍五入,你就有了答案。

int find_containing_int(double x)
{
const double sqr = sqrt(x);

return ceil(sqr);
}

关于c - 找到最小 n 的快速方法,以便 X <= n*n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14688823/

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