Форум программистов, компьютерный форум CyberForum.ru

Операция вычитания через сложение - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
ogost
Сообщений: n/a
17.02.2011, 15:37     Операция вычитания через сложение #1
Доброго времени суток, форумчане!

Помогите с задачей, пожалуйста!

заданы:
1)if - then - else //тут всё понятно
2)рекурсия //тут тоже
3)N-целые числа //тут начинаются непонятки. то ли множество из N чисел задано, то ли просто тип N - целые числа
4)операция сложения: N+N=N //тут тоже непонятно, почему препод написал именно так, а не N=N+N
требуется выразить операцию вычитания через сложение.
Писать на С++

Заранее благодарен!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.02.2011, 15:58     Операция вычитания через сложение #2
Цитата Сообщение от ogost Посмотреть сообщение
требуется выразить операцию вычитания через сложение.
Есkb вас правильно понял, тогда, например
a-b
еквивалентно
a+(-b)
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.02.2011, 16:39     Операция вычитания через сложение #3
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(void){
    int a = 123, b = 23;
    printf("%d - %d = %d\n", a, b, (int)((unsigned)a + (~(unsigned)b + 1)));
    return 0;
}
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
17.02.2011, 16:49     Операция вычитания через сложение #4
3)N-целые числа //тут начинаются непонятки. то ли множество из N чисел задано, то ли просто тип N - целые числа
А ну-ка, экстрасенсы, навались!
ogost
Сообщений: n/a
18.02.2011, 06:37     Операция вычитания через сложение #5
Цитата Сообщение от MILAN Посмотреть сообщение
Есkb вас правильно понял, тогда, например
a-b
еквивалентно
a+(-b)
ну и так можно. но зачем тогда рекурсия с условием if-then-else?

Добавлено через 2 часа 21 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
    printf("%d - %d = %d\n", a, b, (int)((unsigned)a + (~(unsigned)b + 1)));
Прокомментируйте, пожалуйста, эту строчку, буду очень благодарен.
Если я правильно понимаю, то это не совсем рекурсия.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
18.02.2011, 06:55     Операция вычитания через сложение #6
Цитата Сообщение от ogost Посмотреть сообщение
Если я правильно понимаю, то это не совсем рекурсия.
Я бы даже сказал - совсем не рекурсия. Да и с if/then/else как-то не задалось. На самом деле всё проще. Прочитайте про запись чисел в дополнительном коде, ну и про унарную операцию "гнутый минус" (~), и всё станет понятно...
Yandex
Объявления
18.02.2011, 06:55     Операция вычитания через сложение
Ответ Создать тему
Опции темы

Текущее время: 13:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru