


Как найти числа по их сумме и разности в c++?
вроде получилось, но почему-то когда отправляю на проверку все равно пишет что не правильно, а тестовые задания посмотреть не могу. получилось вот это, может кто-то найдет ошибку?
#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;
}
Надо решить систему уравнений:
x+y=s
x-y=d
Отсюда как бы следует, что
x=(s+d)/2
y=(s-d)/2
Ну и ты, голуба, можешь просто использовать эти формулы.
А можешь использовать метод решения линейных уравнений имени товарища Гаусса:

Но вот твои эти эмпирические циклы тут нахрен не уперлись, я гарантирую это.
У тебя там практически всё написанное - ошибки алгоритма :(
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;}
#include <iostream>
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;
}
#include <iostream>
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;
}