top of page

Daily Coding Problem #21

Writer's picture: Mischievous_FaceMischievous_Face

#include <iostream>

using namespace std;


// -----------------------------------------------------------------------------

// Write a function which will round a given integer to the next largest

// multiple of some other "base" integer. For example, given a value of 5 and

// a base of 4, the function should return 8.

// -----------------------------------------------------------------------------


int RoundToLargerMultiple(int nInteger, int nBase)

{

if (nBase == 0 || nInteger == 0)

{

cout << 0 << endl;

return 0;

}


bool nNegative = nInteger >= 0 ? false : true;

bool bNegative = nBase >= 0 ? false : true;

int n = 0;


if (nNegative)

{

int remainder = nInteger % nBase;

nInteger *= -1;

n = nInteger / nBase;


if (bNegative)

{

n *= -1;

if (remainder != 0)

++n;


n *= nBase;

}

else

n *= -nBase;

}

else

{

int remainder = nInteger % nBase;

n = nInteger / nBase;


if (remainder > 0 && !bNegative)

++n;


n *= nBase;

}


cout << n << endl;



return n;

}


int main() {

RoundToLargerMultiple(5, 4);

RoundToLargerMultiple(-5, 4);

RoundToLargerMultiple(5, -4);

RoundToLargerMultiple(-5, -4);

RoundToLargerMultiple(14, 5);

RoundToLargerMultiple(-14, 5);

RoundToLargerMultiple(14, -5);

RoundToLargerMultiple(-14, -5);

RoundToLargerMultiple(3, 3);

RoundToLargerMultiple(-3, 3);

RoundToLargerMultiple(3, -3);

RoundToLargerMultiple(-3, -3);

RoundToLargerMultiple(0, 5);

RoundToLargerMultiple(5, 0);

RoundToLargerMultiple(0, 0);

return 0;

}






32 views0 comments

Recent Posts

See All

留言


© 2020 Josh Painter

bottom of page