0 / 0 / 1
Регистрация: 11.10.2015
Сообщений: 36
1

Нахождение суммы двух наибольших из трех различных чисел

03.03.2016, 14:12. Показов 889. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как это сделать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2016, 14:12
Ответы с готовыми решениями:

Найти сумму двух наибольших из трех заданных различных чисел
Найти сумму двух наибольших из трех заданных различных чисел.

Нахождение среднего арифметического трех целых чисел или суммы двух вещественных
#include <iostream> #include <cmath> int main() { float x,y; int a,b,c; ...

Составить программу нахождения суммы двух наибольших из трех различных чисел
Составить программу нахождения суммы двух наибольших из трех различных чисел. ПОМОГИТЕ Девушке,...

Найти сумму двух наибольших из трех различных чисел
составить программу нахождения суммы двух наибольших из трех различных чисел на турбо паскаль !!(((...

5
2208 / 1706 / 722
Регистрация: 27.07.2012
Сообщений: 5,091
03.03.2016, 14:30 2
Цитата Сообщение от Emmyson Посмотреть сообщение
Как это сделать?
Составить программу или найти сумму двух наибольших из трёх?

C++
1
2
3
4
5
6
7
8
9
10
#include <algorithm>
#include <iostream>
 
int main()
{
    int a = 5, b = 25, c = 15;
    std::cout << a + b + c - std::min(a, std::min(b, c));
    std::cin.get();
    return 0;
}
0
700 / 377 / 63
Регистрация: 22.12.2013
Сообщений: 2,143
Записей в блоге: 19
03.03.2016, 19:38 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
inline int maxB(int x, int y)
{
return ( x ^ ((x ^ y) & -(x < y)) );
}
 
int main()
{
    int a = 5, b = 25, c = 15;
 
 
 
  cout<< maxB(a, b) +  maxB(a, c) <<endl;
 
    return 0;
}
Добавлено через 8 минут
можете оптимизировать формулу (x ^ ((x ^ y) & -(x < y)) + (x ^ ((x ^ y) & -(x < y)),
и тогда выполнение получится еще быстрее.
0
Любитель чаепитий
3741 / 1798 / 565
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
03.03.2016, 19:44 4
vvm28, А что, если a = 3, b = 2, c =1?

Добавлено через 1 минуту
Цитата Сообщение от vvm28 Посмотреть сообщение
можете оптимизировать формулу (x ^ ((x ^ y) & -(x < y)) + (x ^ ((x ^ y) & -(x < y))
А можно ещё так:
return x > y ? x : y;
0
Вездепух
Эксперт CЭксперт С++
11087 / 6054 / 1652
Регистрация: 18.10.2014
Сообщений: 15,199
03.03.2016, 19:55 5
Цитата Сообщение от vvm28 Посмотреть сообщение
C++
1
  cout<< maxB(a, b) +  maxB(a, c) <<endl;
Сначала, я думаю, надо было найти правильное решение, а уж потом заниматься оптимизациями. Ваше решение - неправильное, поэтому вопросы "быстрее" или "не быстрее" тут пока никакого значения не имеют.

(Это не говоря еще о том, что обычный максимум через сравнение будет быстрее этих странных извращений с побитовымт операциями.)
0
700 / 377 / 63
Регистрация: 22.12.2013
Сообщений: 2,143
Записей в блоге: 19
04.03.2016, 13:24 6
Цитата Сообщение от makfak Посмотреть сообщение
А что, если a = 3, b = 2, c =1?
В моей программе выведет результат = 6. // да вы правы мой алгоритм maxB(a, b) + maxB(a, c) не правильный.
А я уже обрадовался, что гениальный алгоритм придумал.

Добавлено через 2 часа 47 минут
Другой вариант:
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>
 
#define SWAPI(a, b) (((a) == (b)) || (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))))
 
using namespace std;
 
/*
inline int maxB(int x, int y)
    {
        return ( x ^ ((x ^ y) & -(x < y)) );
    }
*/
 
int main()
{
    //int a = 3, b = 2, c = 1;
 
int a = 2, b = 3, c = 1;
 
 
if(a<b) SWAPI(a, b);
    if(b<c)SWAPI(b, c);
 
 cout<< a+b <<endl;
 
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2016, 13:24
Помогаю со студенческими работами здесь

Найти сумму двух наибольших из трех различных чисел
Еще одна задача: Составить программу нахождения суммы двух наибольших из трех различных чисел. И...

Нахождение суммы трех наибольших чисел в наборе из 7 чисел
Помогите написать, программу нахождения суммы из трех наибольших чисел набора 7 чисел. Я вообще без...

Составить программу нахождения суммы двух наибольших из трех чисел
Составить программу нахождения суммы двух наибольших из трех чисел. For example: ...

Нахождение суммы и произведения двух наименьших чисел из трёх разных
Составить программу нахождения суммы произведения двух наименьших чисел из трёх разных

Нахождение среднего арифметического трех целых чисел или суммы двух вещественных
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; int dd(int a,int b,int c) { int m; m=(a+b+c)/3; return...

Если сумма трех различных целых чисел x, y, z меньше 15, то наименьшее из этих трех чисел заменить полусуммой двух других
Не могу представить написание программы на си шарпе, помогите кто сможет, или хотя бы направьте на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru