我有一个数据的矩阵起始索引和我的数据元素的数量 我需要找到数据跨越的行数。 例如矩阵
0 5 ------------------- | | | | |x |x | ------------------- |x |x |x |x |x |x | ------------------- | | | | | | | ------------------- | | | | | | | -------------------
我的数据标有x。我知道起始索引4,数据的长度8。 我需要确定此数据跨越的行数,在这种情况下为2。 (在很多情况下,只做长度/ 6是一个,当然必须有一个简单的公式..)
答案 0 :(得分:0)
如果你只知道offset
(即起始列的索引),size
(即有多少数据),cols
(即最大列数),你想要计算您的数据将跨越多少行,您可以
int get_spanned_rows(int offset, int size, int cols) {
int spanned_rows = (offset + size) / cols
if ( ( (offset + size ) % cols) != 0 )
spanned_rows++
return spanned_rows
}
其中%
是模数(或提醒)运算符
答案 1 :(得分:0)
int calc_rows(int start,int length){
int rows = 0;
int x= 0;
if (start != 0){
x = 6%start;
rows+=1;
}
if ((start+length) % 6 != 0){
x +=(start+length) % 6;
rows+=1;
}
rows+= (length - x)/6;
return rows;
}
通过除以6计算行数,但减去部分填充的行数后计算
答案 2 :(得分:0)
如果您只想要可以计算的行数
num_rows = (offset + size + cols - 1) / cols
在这种情况下是
num_rows = (4 + 8 + 6 - 1) / 6 = 17 / 6 = 2