Сложение и вычитание с использованием операторов увеличения и уменьшения. C ++

0

Мне была поставлена задача добавить и вычесть две переменные 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;

Спасибо за помощь!

  • 0
    Посмотрите на перегрузку оператора
  • 0
    Вам разрешено использовать петли?
Показать ещё 6 комментариев
Теги:
for-loop
loops
operators

3 ответа

2
Лучший ответ

Очевидно, что вам нужно использовать либо циклы, либо рекурсивные функции. Например

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;
  • 0
    Спасибо! Это имеет смысл. Ибо петли все еще очень новые, я тоже так запутался
4

Используйте цикл for.

например

 for (; add1; add1--, add2++);

add2 будет add1 + add2 если add1 положителен

Аналогичная идея для вычитания

0

Для этого вам нужно использовать какие-то встроенные операторы, если вам не требуется писать парсерный парсер и создавать собственный интерпретатор и компилятор. Но я предполагаю, что вопрос довольно прост, он не просил вас об этом.

Вы можете просто сделать это:

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;
  • 0
    Помните, что нет причин делать это слишком сложным. Если вы хотите попробовать цикл for, чтобы сделать это, то это нормально, но, на мой взгляд, это перебор для задачи. Как программист, ваша задача не только решать проблемы, но и решать их наилучшим образом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню