Мне была поставлена задача добавить и вычесть две переменные int БЕЗ использования встроенных операторов (+ и -) и вместо этого использовать операторы increment and decment. Как мне это сделать?
int add1;
int add2;
int total;
cout << "Please enter the 2 numbers you wish to add" << endl;
cin >> add1;
cin >> add2;
//perform addition using increment operators
return 0;
Спасибо за помощь!
Очевидно, что вам нужно использовать либо циклы, либо рекурсивные функции. Например
int add1;
int add2;
cout << "Please enter the 2 numbers you wish to add" << endl;
cin >> add1;
cin >> add2;
int sum = add1;
for ( int i = 0; i < add2; i++ ) ++sum;
int diff = add1;
for ( int i = 0; i < add2; i++ ) --diff;
std::cout << "sum is equal to: " << sum << std::endl;
std::cout << "difference is equal to: " << diff << std::endl;
return 0;
Используйте цикл for
.
например
for (; add1; add1--, add2++);
add2
будет add1 + add2
если add1 положителен
Аналогичная идея для вычитания
Для этого вам нужно использовать какие-то встроенные операторы, если вам не требуется писать парсерный парсер и создавать собственный интерпретатор и компилятор. Но я предполагаю, что вопрос довольно прост, он не просил вас об этом.
Вы можете просто сделать это:
int add1;
int add2;
cout << "Please enter the 2 numbers you wish to add" << endl;
cin >> add1;
cin >> add2;
//perform addition using increment operator
cout << (add1 += add2);
return 0;
EDIT - добавлен оператор декремента с меньшей или равной 0, если /else:
int add1;
int add2;
int sub1;
int sub2;
cout << "Please enter the 2 numbers you wish to add" << endl;
cin >> add1;
cin >> add2;
//perform addition using increment operator
cout << (add1 += add2);
cout << "Please enter the 2 numbers you wish to subtract" << endl;
cin >> sub1;
cin >> sub2;
if((sub1 - sub2) <= 0)
{
cout << "Number is less than or equal to 0." << endl;
}
else
cout << (sub1 -= sub2);
return 0;