如何仅使用位移和加法进行乘法和除法?
我是编程的初学者,并且正在尝试使用C++编写原理和练习来学习C++.在本书的某些部分,您可以尝试进行一些练习,其中一个练习是关于计算数字的平方,这是我的书中所说的:
在不使用乘法运算符的情况下实现square(),即通过重新添加来执行x*x(将变量结果启动为0并将x添加x次).
我已经找到了这个程序的解决方案,但我的第一个试验是这样的:
#include <iostream>
int main()
{
int a = 0;
std::cout << "Enter an integer value : ";
std::cin >> a;
while (a < a * a)
{
a += a;
std::cout << a << "\n";
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这段代码是错误的,但我无法理解程序的输出,如果我输入5程序打印10 20 30 40 50直到8000,为什么for循环不会在a大于它的平方时停止?我很想知道为什么要这么做