Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2013, 10:12   #1
Алина92
Новичок
Джуниор
 
Регистрация: 23.12.2013
Сообщений: 3
Радость Найти числа X и Y, сумма которых равно A, а сумма квадратов равна B. (на C++)

Найти числа X и Y, сумма которых равно A, а сумма квадратов равна B. Вывести найденные значения, а также, для контроля, – их сумму и сумму квадратов. Проверить работу программы также при вводе A=1 и B=1, где решение очевидно. Программа должна быть написана на языке С++

Помогите пожалуйста написать программку=)

Последний раз редактировалось Serge_Bliznykov; 23.12.2013 в 10:36.
Алина92 вне форума Ответить с цитированием
Старый 23.12.2013, 10:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Самый простой способ в лоб:
Код:
int a=1,b=1;
for(int i=1;i<32000;i++)
 for(int j=1;j<32000;j++)
  if(i+j==a && i*i+j*j==b)printf("%d\t%d\n",i,j);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2013, 10:40   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Виталий,
во-первых циклы нужно крутить от нуля (обратите внимание на
Цитата:
Проверить работу программы также при вводе A=1 и B=1, где решение очевидно.
во-вторых, циклы нужно крутить не до абстрактного 32000, а до корня из B

в-третьих, думаю, что в целях оптимизации одного цикла было бы вполне достаточно (при известном X вычислить Y не сложно)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.12.2013, 11:31   #4
Алина92
Новичок
Джуниор
 
Регистрация: 23.12.2013
Сообщений: 3
По умолчанию

Все бы ничего, но язык на котором должна быть программа написана С++
Алина92 вне форума Ответить с цитированием
Старый 23.12.2013, 11:50   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но язык на котором должна быть программа написана С++
Все бы ничего, но язык на котором я написал пример С++
Цитата:
во-первых циклы нужно крутить от нуля
Смысл? Числа с нулем предсказуемы в данном случае. Их высчитывать не обязательно в принципе.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2013, 11:50   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Алина92, во-первых, код, приведенный Stiletом, удовлетворяет синтаксису С++. Во-вторых, писать за Вас всю программу вряд ли кто-то будет, а вот алгоритм обсудить вполне.

По поводу решения. А зачем циклы (хотя право самого "лобового" решения за ними )?
x+y=A, x^2+y^2=B
x=A-y
A^2-2Ay+2y^2=B
D=A^2-2A^2+2B=2B-A^2
y=(A+-sqrt(D)/2
То есть по введенным A и B считаем дискриминант и находим количество решений y и их значения. По ним находим соответствующие значения x.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 23.12.2013 в 11:53.
BDA вне форума Ответить с цитированием
Старый 23.12.2013, 13:00   #7
Алина92
Новичок
Джуниор
 
Регистрация: 23.12.2013
Сообщений: 3
По умолчанию

Спасибо большое этого вполне достаточно=)
Алина92 вне форума Ответить с цитированием
Старый 01.10.2021, 14:31   #8
flanker657614
Новичок
Джуниор
 
Регистрация: 01.10.2021
Сообщений: 3
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Алина92, во-первых, код, приведенный Stiletом, удовлетворяет синтаксису С++. Во-вторых, писать за Вас всю программу вряд ли кто-то будет, а вот алгоритм обсудить вполне.

По поводу решения. А зачем циклы (хотя право самого "лобового" решения за ними )?
x+y=A, x^2+y^2=B
x=A-y
A^2-2Ay+2y^2=B
D=A^2-2A^2+2B=2B-A^2
y=(A+-sqrt(D)/2
То есть по введенным A и B считаем дискриминант и находим количество решений y и их значения. По ним находим соответствующие значения x.
Добрый записал решение вот так, если ввести a=10 и и=10, то выводит 3 и7, сумма сходиться, но сумма квадратов нет, можете подсказать где ошибка?
//
#include <math.h>
#include <iostream>
using namespace std;


int main()
{
int a, b,d;
cout << "Введите a и b" << endl;
cin >> a >> b;

d = 2*b - a^2;
//cout << d;
int y, x;

y = (a+-sqrt(d)) / 2;
x = a - y;
cout << y << " " << x << endl;




}
flanker657614 вне форума Ответить с цитированием
Старый 01.10.2021, 17:21   #9
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а отрицательные числа не затрагиваете в данной задаче?
ведь -2 и +5 в сумме дадут положительное +3 и сумма квадратов, скажем, тоже будет положительной...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace на форуме Ответить с цитированием
Старый 01.10.2021, 17:47   #10
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Обращу внимание на то, что исходный пост от 23.12.2013 сколько лет прошло.

И всё же, ели это попытка решить задачу для себя (flanker657614), то обратите внимание на то, что есть теория:
y=(A+-sqrt(D)/2
и тут знаки + (плюс) и - (минус) следует рассматривать отдельно. А есть выложенный код:
Код:
y = (a+-sqrt(d)) / 2;
x = a - y;
cout << y << " " << x << endl;
В котором предлагается машине разобраться самой. Но у РС нет интеллекта
Следует писать код в котором рассматриваются два варианта с + (плюсом), а затем с - (минусом).
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметическая задача(Delphi(в форме)).Найти все трехзначные числа,сумма цифр которых равна А,а само А делится на В.А и В вводятся NIR957 Помощь студентам 1 16.10.2013 23:02
Вывести все двухзначные числа, сумма которых равна N. djquins Помощь студентам 5 27.06.2013 12:03
Программа, которая выводит на экран все четырехзначные числа, сумма цифр которых равна 7 vitaaly Паскаль, Turbo Pascal, PascalABC.NET 3 06.02.2012 15:46
определить все двузначные числа сумма квадратов цифр которых кратна числу 15 [Pascal] mrRastom Помощь студентам 5 16.12.2010 09:47
Нахождение в столбце с числами строк, сумма чисел которых равна определенному значению KNatalia Microsoft Office Excel 2 16.09.2009 08:42