From 44c6ed03656cc74e3737477f9e01eb8ae8f3da09 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Fri, 2 Apr 2021 13:11:20 +0300 Subject: Delete task.cpp --- Sem. 05/task.cpp | 152 ------------------------------------------------------- 1 file changed, 152 deletions(-) delete mode 100644 Sem. 05/task.cpp diff --git a/Sem. 05/task.cpp b/Sem. 05/task.cpp deleted file mode 100644 index 922e889..0000000 --- a/Sem. 05/task.cpp +++ /dev/null @@ -1,152 +0,0 @@ -#include -#include -#include -#include - -using namespace std; - -bool isPrime(int n) -{ - double temp = sqrt(n); - for (int i = 2; i <= temp; i++) - { - if (n % i == 0) - return false; - } - return true; -} -bool isPalindorme(int n) -{ - int reversed = 0; - - while (n != 0) - { - int lastDigit = n % 10; - (reversed *= 10) += lastDigit; - n /= 10; - } - return n == reversed; -} -bool containsOnlyDistinctNumbers(int n) -{ - bool digits[10]; - for (int i = 0; i < 10; i++) - digits[i] = false; - - while (n != 0) - { - int lastDigit = n % 10; - if (digits[lastDigit]) - return false; - digits[n % 10] = true; - n /= 10; - } - return true; -} -struct Interval -{ -private: - int a; - int b; - - size_t countNumbersInIntervalCondition(bool(*pred)(int)) const - { - size_t count = 0; - for (int i = a; i <= b; i++) - { - if (pred(i)) - count++; - } - return count; - } -public: - Interval() : Interval(0, 0) {} - - Interval(int a, int b) - { - if (a > b) - a = b = 0; - - this->a = a; - this->b = b; - } - int getA() const - { - return a; - } - - int getB() const - { - return b; - } - void setA(int a) - { - if (a > b) - return; - this->a = a; - } - - void setB(int b) - { - if (b < a) - return; - this->b = b; - } - - size_t getLength() const - { - return b - a + 1; - } - - bool isMemberOfInterval(int x) const - { - return (a <= x && x <= b); - } - - size_t calcPrimeNumbersInTheInterval() const - { - return countNumbersInIntervalCondition(isPrime); - } - - size_t calcPalindromicNumbersInTheInterval() const - { - return countNumbersInIntervalCondition(isPalindorme); - } - - size_t calcDiffrentDigitNumbersInTheInverval() const - { - return countNumbersInIntervalCondition(containsOnlyDistinctNumbers); - } - - bool areStartAndEndPowersOfTwo() const - { - return (a == 0 || (a & a - 1) == 0) && (b == 0 ||(b & b - 1) == 0); - } - - Interval intersect(const Interval& other) const - { - if (b < other.getA() || a > other.getB()) - return Interval(0, 0); - - int newA = std::max(a, other.getA()); - int newB = std::min(b, other.getB()); - - return Interval(newA, newB); - } - bool isSuperInterval(const Interval& other) const - { - return a <= other.getA() && b >= other.getB(); - } -}; - -int main() -{ - Interval i(1, 11); - - cout << i.calcDiffrentDigitNumbersInTheInverval() <