Количество элементов в столбце внутри сетки - PullRequest
1 голос
/ 14 сентября 2010

Как вы находите количество элементов в столбце внутри сетки?

У меня есть сетка (элемент управления списком просмотра, чтобы быть конкретным), и у меня есть некоторые элементы.Иногда данная строка может быть не полной.ANd может иметь значения в столбцах меньше максимального.Мне нужно найти количество элементов в данной колонке.

Если сетка похожа на

1   2   3
4   5   6
7       

и если входной столбец равен 1, то нам нужно вывести 3 и 2 для ввода 2 или 3.

Iесть переменные для ItemCount, CoulmnCount и RowCount, которые отслеживают количество элементов, строк и столбцов.

Очень простой способ будет выглядеть примерно так:

int iItemCount=0,iItemInColumn=0;
for(int iCol=0;iCol<iColumnCount;iCol++)
    for(int iRow=0;iRow<iRowCount;iRow++,iItemCount++)
        if(iCol==iInputCol && iItemCount<iTotalItems)
            iItemInColumn++;

Можете ли вы, ребята, думать о любомsophesticated способ, который не нуждается в петлях?можно использовать только 3 переменные, которые у меня уже есть для отслеживания?

1 Ответ

1 голос
/ 15 сентября 2010

Предполагается, что индексы на основе 0:

def itemsInColumn(itemCount, columnCount, inputColumn):
  lastItemColumn = (itemCount - 1) % columnCount
  if inputColumn <= lastItemColumn:
    return (itemCount + columnCount - 1) / columnCount
  else:
    return itemCount / columnCount

Это зависит от общего количества элементов (itemCount) и количества столбцов (columnCount).Он просто вычисляет itemCount / columnCount и округляет в большую или меньшую сторону в зависимости от того, меньше или равен входной столбец столбец последнего элемента.

Вычисление "(itemCount + columnCount - 1) / columnCount" простотрюк для округления с использованием целочисленного деления.В общем случае заданы натуральные числа a и b: ceil (a / b) = (a + b - 1) div b, где div - целочисленное деление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...