使用增量和减量运算符进行加法和减法。 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++的主要内容,如果未能解决你的问题,请参考以下文章