有 这样一 个 数组 listDataArray ,其中存储 以下三种 情况 的数据
{8,7,6,5,4,3,2,1,0} 、
{9,8,7,6,5,4,3,2,1,0},
{10,9,8,7,6,5,4,3,2,1,0}
求 每个 元素 在 一个 n 行 3列 的矩阵 中 的 行、列 值
#define kColumnCount 3 // 表示 每行的 元素个数
NSInteger rowsum = listDataArray.count/kColumnCount; // 行数
NSInteger remainder = listDataArray.count%kColumnCount; // 最后一行的 个数
n = kColumnCount - 1 - (listDataArray[i])%kColumnCount; // 当前列
m = rowsum - 1 - (listDataArray[i])/kColumnCount; // 当前行
if (remainder > 0) {
m++;
n = (n + remainder)%kColumnCount;
}
// 余数 的 个数 代表 最后 每行的 最后 有 几列 数据 的 行值 多 1 ,根据 kColumnCount 的 不同而定
if (1 == remainder && (1 == n || 2 == n)) {
m -= 1;
}
if (2 == remainder && 2 == n) {
m -= 1;
}
NSLog(@"%d,%d",m,n);