С++, найти некоторые числа

Интересная попралась задачка.

Напишите программу которая найдет три нечетных числа, идущих подряд, для которых правдивы утверждения:a < b < c, и a2+b2+c2 равно четырехзначному числу у которого все цифры одинаковы (т.е 1111, 8888 итп).

Написал для начала на си:

В этой программе куча самописных функций. Начну с них, так как они выполняют бОльшую часть работы.

  • bool is_even_number(int a) — проверяет, является ли число четным
  • bool isOnesNumber(int N) — проверяет, состоит ли число из одинаковых цифр или нет
  • int numbersCount(int N) — считает количество цифр в числе
  • bool isCond1(int a, int b, int c) — проверка первого условия задачи
  • bool cond2(int a, int b, int c) — проверка второго условия. Она наиболее интересная. В ней вызывается функция bool isOnesNumber(int N), а потом проверяется что бы число получившееся от сложения параметов… Количество цифр в этом числе, не превосходило 4.

Функции есть, теперь их нужно правильно вызвать. В основной функции, main, происходит все так:

По условию задачи, сумма трех чисел равна четырехзначному числу, этим условием и ограничен цикл. Внутри есть еще один блок, где проверяются условия… По порядку, нужно что бы… :

  1. Число было не четным
  2. числа подходили под 1е условие
  3. и подходили под второе

И напоследок: Скачать проект в Visual Studio архивом.

Результат работы программы

Добавить комментарий