Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как, используя C, сложить два числа без использования оператора +?

ФермаКактусов Высший разум (211433), закрыт 1 неделю назад
Лучший ответ
Николай Веселуха Высший разум (368733) 1 месяц назад
#include <stdio.h>
#include <math.h>

int add(int a, int b) {
while (b != 0) {
int sum = a & b;
a = a ^ b;
b = sum << 1;
}
return a;
}

int main(void) {
int a = -13;
int b = 42;
int sum = add(a, b);
printf("%d + %d = %d\n", a, b, sum);
return 0;
}
 #include <stdio.h> 
#include <math.h>

int add(int a, int b) {
while (b != 0) {
int sum = a & b;
a = a ^ b;
b = sum << 1;
}
return a;
}

int main(void) {
int a = -13;
int b = 42;
int sum = add(a, b);
printf("%d + %d = %d\n", a, b, sum);
return 0;
}
Остальные ответы
Андрей Высший разум (460590) 1 месяц назад
Например, так:

int a, b;
scanf("%d%d", &a, &b);
while (b != 0) {
int c = a ^ b, d = a & b;
a = c;
b = d << 1;
}
printf("%d", a);

Для реализации сложения не нужны арифметические операции - достаточно битовых.
kaiu Высший разум (117572) 1 месяц назад
Битовые долго, если тупо задание такое, то вот тебе a+b = a-(-b)
Похожие вопросы