diff --git a/HappyNumber.cpp b/HappyNumber.cpp new file mode 100644 index 0000000..3d604de --- /dev/null +++ b/HappyNumber.cpp @@ -0,0 +1,34 @@ +#include +constexpr int8_t countOfNums_ticket{ 6 }; +bool isHappy(const int32_t& num)//принимаем по неконстантной r-value ссылке число +{ + int32_t first{ num/ 1000 }, second{ num % 1000 }; // записываем в переменные первую и вторую половину числа(поскольку по условиям задачи надо 6-значное число, делим по модулю + // и целочисленно на 1000 + int32_t sum1{}, sum2{};// сумма первой и второй половины числа, изначально равна 0 + + for (size_t i = 0; i < 3; i++) // поскольку остаётся 2 3--значных числа, цикл на 3 итерации + { + sum1 += (first % 10); first /= 10; // увеличиваем значение sum1 на остаток от деления first на 10,затем делаем присаивающее деление first на 10 + sum2 += (second % 10); second /= 10;//аналогично строчке выше + } + return sum1 == sum2;// возвращаем результат сравнения +} +int main() +{ + int32_t number{}, countOfNums{};// переменные Число, количество цифр + std::cout << "Enter number: "; std::cin >> number;// принимаем данные от пользователя + int32_t buff(number);// создаём копию числа, введённого пользователем + while (buff)// пока это число существует(не равно 0) + { + countOfNums++;// увеличиваем countOfNums на 1 + buff /= 10; // само число уменьшаем присваивающим делением на 10 + } + if (countOfNums == countOfNums_ticket) // если кол-во чисел равно 6 + { + isHappy(number) ? std::cout << "Happy\n" : std::cout << "Unhappy\n";// проверяем число + } + else {//иначе.. + std::cout << "Incorrect input!\n";// выводим сообщение об ошибке + } + system("pause"); +} \ No newline at end of file diff --git a/Max_div.cpp b/Max_div.cpp new file mode 100644 index 0000000..606225a --- /dev/null +++ b/Max_div.cpp @@ -0,0 +1,16 @@ +#include + +int max_Div(int num) +{ + int buff(num); + for (int i{num-1};i>0;i--) + { + if (buff % i == 0)return i; + } +} +int main() +{ + int n{}; + std::cout << "Enter num: "; std::cin >> n; + std::cout <<"max div: "<< max_Div(n); +} \ No newline at end of file diff --git a/SumUneven_Digits_of_Number.cpp b/SumUneven_Digits_of_Number.cpp new file mode 100644 index 0000000..90aea99 --- /dev/null +++ b/SumUneven_Digits_of_Number.cpp @@ -0,0 +1,27 @@ +#include + +int32_t sum_uneven_el(int32_t num) +{ + int32_t buff{ abs(num) }, dest{}; + + while (buff) + { + if (((buff % 10) % 2) == 0) + { + dest += (buff % 10); + buff /= 10; + } + else { + buff /= 10; + } + } + return dest; +} +int main() +{ + int32_t num{}; + std::cout << "Enter number: "; + std::cin >> num; + std::cout <<'\n'<< sum_uneven_el(num)<<'\n'; + system("pause"); +} \ No newline at end of file diff --git a/Sum_uneven_nums_from_input.cpp b/Sum_uneven_nums_from_input.cpp new file mode 100644 index 0000000..6dbb9ef --- /dev/null +++ b/Sum_uneven_nums_from_input.cpp @@ -0,0 +1,35 @@ +#include + +int32_t sum_uneven_el( ) +{ + constexpr size_t max{ 50 };//максимальное ограничение + size_t counter{};// счётчик + + int32_t sum{}, buff{}; // сумма и буфферная переменная + while ((counter <= max))// пока счётчик меньше или равен max + { + std::cout << "Enter num: ";// вводим числа + std::cin >> buff; //... + if ((buff % 2 != 0) && (buff >= -60)&&(buff<=90))//если наше число подходит под условия задачи(в диапазоне от -60 до 90) и являеться нечётным + { + sum += buff;//прибавляем это число к сумме + counter++;//увеличиваем счётчик на единицу + } + else {// иначе + counter++;// просто увеличиваем счётчик на единицу + } + char x{};// буфферная переменная для досрочного завершения цикла + if (counter % 5 == 0)// после каждой 5-й итерации.. + { + std::cout << "continue?(y-yes, n-no)\n"; std::cin >> x;//спрашиваем у пользователя о желании продолжить + if (x == 'n')break;//если он не желает продолжать - завершаем цикл + + }; + } + return sum;// возвращаем результат +} +int main() +{ + std::cout <<'\n'<< sum_uneven_el()<<'\n';// ... + system("pause"); +} \ No newline at end of file diff --git a/reverse_num.cpp b/reverse_num.cpp new file mode 100644 index 0000000..14cae4a --- /dev/null +++ b/reverse_num.cpp @@ -0,0 +1,22 @@ +#include + +int32_t reverse(int32_t num) +{ + int32_t buff(num), dest{}; + + while (buff) + { + dest *= 10; + dest += (buff % 10); + buff /= 10; + } + return dest; +} +int main() +{ + int32_t num{}; + std::cout << "Enter number: "; + std::cin >> num; + std::cout <<'\n'<< reverse(num)<<'\n'; + system("pause"); +} \ No newline at end of file