给定一个数值,计算最合适的行列数量的代码

简介: 给定一个数值,计算最合适的行列数量的代码

其实代码很简单,需要的可以参考下。


int   countToRowColumn(const int count, int* pRows, int* pColumns)
{
    //这两个变量可以省略。
    int rows    = 0;
    int columns = 0;
    if (count <= 0 || pRows == NULL || pColumns == NULL)
    {
        return -1;
    }
    //先计算列数。
    columns = sqrt(count);
    if (columns*columns < count)
    {
        columns ++;
    }
    //再计算行数。
    rows   = count/columns;
    if (rows*columns < count)
    {
        rows ++;
    }
    *pRows    = rows;
    *pColumns = columns;
    return 0;
}


以5为例计算中间过程:


columns=2


columns=3


rows = 1


rows = 2


返回。



有人如下代码如何,是不是更精简?


rows    = sqrt(count);
columns = rows;
if (rows*columns<count)
{
    columns++;
}
count=3;
rows=1;
columns=1;
columns=2;


返回,错误。

目录
相关文章
【动态规划】【前缀和】【数学】2338. 统计理想数组的数目
【动态规划】【前缀和】【数学】2338. 统计理想数组的数目
【多数组合 数学 字符串】2514. 统计同位异构字符串数目
【多数组合 数学 字符串】2514. 统计同位异构字符串数目
算法训练Day27|39. 组合总和● 40.组合总和II● 131.分割回文串
算法训练Day27|39. 组合总和● 40.组合总和II● 131.分割回文串
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
算法训练Day36|435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间
四式解决回溯算法:组合+组合总和
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
714 3
Leetcode 76最小覆盖子串&77组合&78子集
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。
137 0
Leetcode 76最小覆盖子串&77组合&78子集
如何计算线程数的最优值?——咱有公式
如何计算线程数的最优值?——咱有公式
282 0
如何计算线程数的最优值?——咱有公式
lodash判断值是否是原始有限数值
lodash判断值是否是原始有限数值
118 0