Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kravtsov_18
Заблокирован
#1

Найти произведение членов пифагорейского триплета, сумма которых равна заданному числу - C++

21.01.2016, 00:08. Просмотров 271. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Пожалуйста, помогите.
Неизвестный автор пишет программу Специальный триплет Пифагорейский
Пифагорейский триплет это набор трех чисел, a < b < c, для которых,
a^2 + b^2 = c^2
Например, 3^2 + 4^2 = 9 + 16 = 25 = 5^2.
Есть только один Пифагорейский триплет для которого a + b + c = 1000.
Найти произведение abc
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <math.h>
 
bool is_triplet(int a, int b, int c);
 
int main()
{
    for (int i=1; i<=998; i++)
    {
        for (int j=i+1; j<=999; j++)
        {
            for (int k=j+1; k<=1000; k++)
            {
                if (is_triplet(i,j,k))
                    if (i+j+k == 1000)
                    std::cout << i*j*k << std::endl;
            }
        }
    }
    return 0;
}
 
bool is_triplet(int a, int b, int c)
{    
    if ((pow(a,2) + pow(b,2)) == pow(c,2))
        return true;
    return false;
}
Программа находит: 1875000
А как сделать, чтобы программа сразу показывала значения: a; b; c?

Пришлось самому ломать голову, не зная — кода.

x + y + (x^2 + y^2)^0.5 = 1000 && x*y*(x^2 + y^2)^0.5 = 31875000 http://m.wolframalpha.com/input/?i=x+%2B+y+%2B+%28x^2+%2B+y^2%29^0.5+%3D+1000+%26%26+x*y*%28x^2+%2B+y^2%29^0.5+%3D+31875000&x=6&y=5

x = 200, y = 375
y = 200, x = 375
(200^2 + 375^2)^0.5 = 425

Добавлено через 4 часа 48 минут
Цитата Сообщение от Kravtsov_18 Посмотреть сообщение
Программа находит: 31875000
А как сделать, чтобы программа сразу показывала значения: a; b; c?
Неужели на форуме никто не знает?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2016, 00:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти произведение членов пифагорейского триплета, сумма которых равна заданному числу (C++):

Найти все элементы массива, сумма которых равна заданному числу - C++
Привет. Как можно решить эту задачу не перебором? тут подойдет &quot;задача о рюкзаке&quot;?

Найти 3 натуральных числа сумма квадратов которых равна заданному числу - C++
Дано натуральное n. Указать x,y,z таких натуральных чисел, что n=x2 +y2 +z2 и x&lt;=y&lt;=z , используя перебор значений.

В последовательности целых чисел найти пары, сумма которых равна заданному числу - C++
Дана последовательность целых чисел а1, а2,..., аn. Указать пары чисел ai, aj, таких, что ai + aj = t.

Найти все трехзначные числа, сумма цифр которых равна заданному целому числу - C++
Задача: Найти все трехзначные числа, сумма цифр которых равна данному целому числу Решение: #include &lt;iostream&gt;; void main() { ...

Одномерный массив чисел. Найти индексы элементов, сумма значений которых равна заданному числу - C++
Добрый день, помогите дописать программу. Условие: Одномерный массив чисел a1...a20. Найти индексы элементов, сумма значений которых...

Вывести все четырёхзначные числа, сумма чисел которых равна заданному числу - C++
#include &lt;iostream&gt; using namespace std; int main(){ int N, i, j; cout&lt;&lt;&quot;Vvedite nujnoe chislo \n&quot;; cin&gt;&gt;N; ...

2
zer0mail
2378 / 2009 / 200
Регистрация: 03.07.2012
Сообщений: 7,248
Записей в блоге: 1
21.01.2016, 00:39 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В чем проблема-то? Почему "не зная кода" и что мешает вывести числа:
C++
1
std::cout << i*j*k << " "<<i<<" "<<j<<" "<<k<<std::endl;
И почему произведение то 1875000, то 31875000 ?

Добавлено через 3 минуты
Я уж не говорю о такой чуши, как
C++
1
2
3
4
5
6
  
        for (int k=j+1; k<=1000; k++)
        {
            if (is_triplet(i,j,k))
  вместо 
if (is_triplet(i,j,1000-i-j));
0
Kravtsov_18
Заблокирован
21.01.2016, 01:01  [ТС] #3
Как сам понял, автор кода некий Ашот. Сейчас у меня всё хорошо. Проверил. Код ниже
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <math.h>
 
bool is_triplet(int a, int b, int c);
 
int main()
{
    for (int i=1; i<=998; i++)
    {
        for (int j=i+1; j<=999; j++)
        {
            for (int k=j+1; k<=1000; k++)
            {
                if (is_triplet(i,j,k))
                    if (i+j+k == 1000)
                    std::cout << i*j*k << " "<<i<<" "<<j<<" "<<k<<std::endl;
            }
        }
    }
    return 0;
}
 
bool is_triplet(int a, int b, int c)
{    
   if ((pow(a,2) + pow(b,2)) == pow(c,2))
        return true;
    return false;
}
31875000 200 375 425
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2016, 01:01
Привет! Вот еще темы с ответами:

Получить все четырехзначные числа, сумма цифр которых равна заданному числу n - C++
Здраствуйте, помогите сделать лабораторную, программирование мне не понадобиться так что не хочу забивать этим голову, зарание спасибо. ...

Вычислить сумму элементов массива у которых сумма индексов равна заданному числу - C++
Массив A содержит действительные числа и задается пользователем с клавиатуры вместе с размерностью . Пользователь задает целое число k....

Подсчитать количество четырёхзначных чисел, сумма цифр которых равна заданному числу - C++
Всем доброго дня, уважаемые. Очень нужна помощь с решением задачи на классы. Найти и вывести все четырёхзначные числа из заданной...

Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N - C++
Определить количество трехзначных натуральных чисел, сумма цифр которых равна заданному числу N.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.