Пример #1
0
int P11::solve()
{
	int maxProduct = 0;

	for (int i = 0; i < 20; i++) // For each row
	{
		for (int j = 0; j < 20; j++) // For each column
		{
			// Diagonal products (upper left to lower right)
			if (i < 20-3 && j < 20-3) { performMultiplication(i, j, 1, 1, &maxProduct); }

			// Diagonal products (lower left to upper right)
			if (i >= 3 && j < 20-3) { performMultiplication(i, j, -1, 1, &maxProduct); }

			// Vertical products
			if (i < 20-3) { performMultiplication(i, j, 1, 0, &maxProduct); }

			// Horizontal products
			if (j < 20-3) { performMultiplication(i, j, 0, 1, &maxProduct); }
		}
	}

	return maxProduct;
}
Пример #2
0
void performIqOperation(uint8_t operation, qParams_t * params)
{
    switch (operation)
    {
        case 0:
        {
            params->operationResult = performAddition(params->operandA, params->qFormatA, params->operandB, params->qFormatB, params->qFormatResult);
        }break;
            
        case 1:
        {
            params->operationResult = performMultiplication(params->operandA, params->qFormatA, params->operandB, params->qFormatB, params->qFormatResult);
        }break;
            
        case 2:
        {
            params->operationResult = performDivision(params->operandA, params->qFormatA, params->operandB, params->qFormatB, params->qFormatResult);
        }break;
            
        default:
            break;
    }
}