Интересная попралась задачка.
Напишите программу которая найдет три нечетных числа, идущих подряд, для которых правдивы утверждения:a < b < c, и a2+b2+c2 равно четырехзначному числу у которого все цифры одинаковы (т.е 1111, 8888 итп).
Написал для начала на си:
// che_numbers.cpp: определяет точку входа для консольного приложения.
//
#include <iostream>
using namespace std;
bool is_even_number(int a)
{
return a % 2 == 0;
}
bool isOnesNumber(int N)
{
int d=0, dold =0;
dold = N % 10;
while (N != 0)
{
d = N % 10;
if (d != dold)
{
return false;
}
N = N / 10;
dold = d;
}
return true;
}
int numbersCount(int N)
{
int d=0, count=0;
while (N != 0)
{
d = N % 10;
N = N / 10;
count++;
}
return count;
}
bool isCond1(int a, int b, int c)
{
return (a < b) && (b < c) && (a < c);
}
bool cond2(int a, int b, int c)
{
return (isOnesNumber(a+b+c) && numbersCount(a+b+c) == 4);
}
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
while (numbersCount(i+i+2+i+4) <= 4)
{
if (!is_even_number(i) && isCond1(i,i+2,i+4) && cond2(i,i+2,i+4))
{
cout << i << " " << i+2 << " " << i+4 << " " << " sum=" << (i+2)+i+(i+4) << endl;
}
i++;
}
system("Pause");
return 0;
}
В этой программе куча самописных функций. Начну с них, так как они выполняют бОльшую часть работы.
- 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е условие
- и подходили под второе
И напоследок: Скачать проект в Visual Studio архивом.