Solved: 03 - Operators
This commit is contained in:
@@ -2,39 +2,29 @@
|
||||
|
||||
namespace fundamentals {
|
||||
|
||||
auto absolute_difference(int lhs, int rhs) -> int {
|
||||
// TODO: Return |lhs - rhs| without using std::abs.
|
||||
(void)lhs;
|
||||
(void)rhs;
|
||||
return 0;
|
||||
auto absolute_difference(const int lhs, const int rhs) -> int {
|
||||
// NOTE: std::abs not allowed
|
||||
return lhs < rhs ? rhs - lhs : lhs - rhs;
|
||||
}
|
||||
|
||||
auto is_in_range(int value, int min, int max) -> bool {
|
||||
// TODO: Return true when min <= value <= max (inclusive).
|
||||
(void)value;
|
||||
(void)min;
|
||||
(void)max;
|
||||
return false;
|
||||
auto is_in_range(const int value, const int min, const int max) -> bool {
|
||||
return value >= min && value <= max;
|
||||
}
|
||||
|
||||
auto count_set_bits(std::uint8_t value) -> int {
|
||||
// TODO: Count how many bits are set to 1.
|
||||
(void)value;
|
||||
return 0;
|
||||
auto count_set_bits(const std::uint8_t value) -> int {
|
||||
auto count = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (((value >> i) & 1) == 1) count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
auto logical_and(bool lhs, bool rhs) -> bool {
|
||||
// TODO: Implement logical AND without using &&.
|
||||
(void)lhs;
|
||||
(void)rhs;
|
||||
return false;
|
||||
auto logical_and(const bool lhs, const bool rhs) -> bool {
|
||||
return (lhs & rhs) == 1;
|
||||
}
|
||||
|
||||
auto logical_or(bool lhs, bool rhs) -> bool {
|
||||
// TODO: Implement logical OR without using ||.
|
||||
(void)lhs;
|
||||
(void)rhs;
|
||||
return false;
|
||||
auto logical_or(const bool lhs, const bool rhs) -> bool {
|
||||
return (lhs | rhs) == 1;
|
||||
}
|
||||
|
||||
} // namespace fundamentals
|
||||
|
||||
Reference in New Issue
Block a user