Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Заблокирован
1

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Пожалуйста, помогите.
Неизвестный автор пишет программу Специальный триплет Пифагорейский
Пифагорейский триплет это набор трех чисел, 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2016, 00:08
Ответы с готовыми решениями:

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

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

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

Найти все трехзначные числа, сумма цифр которых равна заданному целому числу
Задача: Найти все трехзначные числа, сумма цифр которых равна данному целому числу Решение:...

2
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 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
Заблокирован
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
21.01.2016, 01:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2016, 01:01
Помогаю со студенческими работами здесь

Найти все трехзначные десятичные числа, сумма цифр которых равна заданному числу
По введенным целым числом М распечатать все трехзначные десятичные числа, сумма цифр которых равна...

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

Найти количество комбинаций, при которых сумма чисел на двух бочонках окажется равна заданному числу
Здравствуйте, помогите пожалуйста с программой, начинающий). Один способ придумал простой, но нужен...

Из всех пар простых чисел, сумма которых равна заданному числу, найти пару, содержащую наименьшее простое число
Известно, что любое чётное число, большее 2, представимо в виде суммы 2 простых чисел, причём таких...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru