使用增量和减量运算符进行加法和减法。 C++

Posted

技术标签:

【中文标题】使用增量和减量运算符进行加法和减法。 C++【英文标题】:Addition and subtraction using increment and decrement operators. C++ 【发布时间】:2014-02-19 19:08:36 【问题描述】:

我的任务是在不使用内置运算符(+ 和 -)的情况下添加和减去两个 int 变量,而是使用递增和递减运算符。我该怎么做?

    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;

感谢您的帮助!

【问题讨论】:

看看运算符重载 你可以使用循环吗? 是不是你想在不使用+的情况下使用++来代替add1 + add2 @JoshEngelsma 我认为运算符重载与此无关。 在这里也可以看到亲切的回答:"How to add two numbers without using ++ or + or another arithmetic operator" 【参考方案1】:

使用for 循环。

例如

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

add2 将是 add1 + add2 假设 add1 是正数

减法的类似想法

【讨论】:

【参考方案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;

【讨论】:

谢谢!这是有道理的。 For 循环对我来说还是很新,所以我很困惑【参考方案3】:

您必须使用某种内置运算符来执行此操作,除非您需要编写令牌解析器并创建自己的解释器和编译器。但我猜,因为这个问题很基础,所以不是要求你这样做。

你可以这样做:

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;

编辑 - 添加小于或等于 0 的减量运算符 if/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;

【讨论】:

请记住,没有理由让它过于复杂。如果你想尝试一个 for 循环来完成这件事,那很好,但在我看来,这对任务来说太过分了。作为程序员,您的工作不仅是解决问题,而且要以最佳方式解决问题。

以上是关于使用增量和减量运算符进行加法和减法。 C++的主要内容,如果未能解决你的问题,请参考以下文章

仅使用增量、循环、赋值、归零的减法运算

C和JAVA中增量-减量运算符的差异[重复]

UFT函数调用-根据两个数进行加法和减法运算

Java 增量/减量运算符 - 它们的行为方式,功能是啥?

PHP在数据输出时进行乘法和加法运算

复数类重载加法减法和乘法运算符