Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как найти числа по их сумме и разности в c++?

Гавриил Стробыкин Стробыкин Ученик (106), на голосовании 4 дня назад
вроде получилось, но почему-то когда отправляю на проверку все равно пишет что не правильно, а тестовые задания посмотреть не могу. получилось вот это, может кто-то найдет ошибку?
#include <iostream>

using namespace std;

int main()
{
int sum, dif, a, b;

cin >> sum >> dif;
if(sum > 0)
a = 0, b = sum;
else
a = dif, b = 0;

for (int i = 0; i < 100; i++)
{
if(sum > 0){
a++;
b--;
if(a + b == sum && a - b == dif){
break;
}
}
else if (sum <= 0){
a++;
b++;
if(a + b == sum && a - b == dif){
break;
}
}
}
cout << a << " " << b;
}
Голосование за лучший ответ
alexey kolesnikov Мастер (2359) 1 месяц назад
 #include  

using namespace std;

int main() {
int sum, dif;
cin >> sum >> dif;

if ((sum + dif) % 2 != 0 || (sum - dif) % 2 != 0) {
cout << "No solution" << endl;
return 0;
}

int a = (sum + dif) / 2;
int b = (sum - dif) / 2;

cout << a << " " << b << endl;
return 0;
}
Jurijus Zaksas Искусственный Интеллект (442834) 1 месяц назад
Надо решить систему уравнений:

x+y=s
x-y=d

Отсюда как бы следует, что

x=(s+d)/2
y=(s-d)/2

Ну и ты, голуба, можешь просто использовать эти формулы.
А можешь использовать метод решения линейных уравнений имени товарища Гаусса:



Но вот твои эти эмпирические циклы тут нахрен не уперлись, я гарантирую это.
Гавриил Стробыкин СтробыкинУченик (106) 1 месяц назад
Лучший ответ, спасибо вам!
Krab Bark Искусственный Интеллект (293442) 1 месяц назад
У тебя там практически всё написанное - ошибки алгоритма :(

using namespace std;
int main(){
float sum,dif; cout<<"sum dif: "; cin>>sum>>dif;
cout<<"a="<<(sum+dif)/2<<", b="<<(sum-dif)/2<<endl;}

Если проверяет робот, ему подсказки ввода-вывода не нужны, тогда

#include <iostream>
int main(){float s,d; std::cin>>s>>d; std::cout<<(s+d)/2<<' '<<(s-d)/2;}
Рустам Абдрашитов Мыслитель (8546) 1 месяц назад
 #include  

using namespace std;

int main() {
int sum, dif;
cin >> sum >> dif;

// Проверяем, что (sum + dif) и (sum - dif) четные
if ((sum + dif) % 2 != 0) {
cout << "Нет решения" << endl;
return 0;
}

// Вычисляем a и b
int a = (sum + dif) / 2; // Находим a
int b = sum - a; // Находим b

cout << a << " " << b << endl; // Выводим результат
return 0;
}
Похожие вопросы