Как определить является ли сумма трёх чисел чётным числом кратным X?
Даны 3 числа. Определить, является ли их сумма четным числом, кратным ?. Вот мой код:
//Даны 3 числа. Определить, является ли их сумма четным числом,кратным ?.
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Rus");
int a, b, c,x,s;
cout << "Введите три числа и X: \n";
cin >> a >> b >> c >> x;
s = (a + b + c) % x && ((a +b +c) % 2 ==0);
cout << a << "+" << b << "+" << c << "=" << s << endl;
}
Что тут не так?Тут и проверка суммы на кратность X и проверка на чётность,не пойму в чём проблема,помогите решить.
Ответы (2 шт):
вот этот код означает, что число не кратно x
(a + b + c) % x
вы же сами записали
s = (a + b + c) % x &&
((a + b + c) % 2 == 0);
почему же у вас кратность x и кратность 2 отличаются сравнениями :)
если число делится без остатка на другое число, то модуль деления должен быть равен нулю, поэтому и сравнивать надо с нулём
если же этого не делать, что любое иное число кроме 0 будет восприниматься как true и значит проверка будет проверять некратность числа, а не кратность
Так будет понятней для случайных посетителей этого вопроса.
#include <iostream>
using namespace std;
int main()
{
int a, b, c, X;
cout << "Enter integer a, b, c, X:\n";
cin >> a >> b >> c >> X;
if ((a + b + c) % 2 == 0 && (a + b + c) % X == 0)
cout << "YES\n";
else
cout << "NO\n";
system("pause");
return 0;
}
Тут проверяется кратна ли сумма X и чётна ли она.