我正在尝试编写一段代码,将数字设为24,并获取所有因素,以便打印数字1和24,8和3等。我尝试自己这样做但是我使用c ++相当新,所以它让我有点困惑。如果这很容易或很简单,我很抱歉。你能告诉我这是怎么做到的吗?
int y = 0;
int x = 0;
int product = x * y;
while (true)
{
product = x * y;
x++;
y++;
if (product == 24)
{
cout << x << " " << y << endl;
}
}
这是我尝试过的代码,但我意识到,由于x和y同时增加,它将永远不会达到24作为产品。
答案 0 :(得分:1)
以下是快速代码段:
for (int i = 1; i <= n; ++i) {
if (n % i == 0) {
std::cout << i;
}
}
请注意,它未经过优化。
答案 1 :(得分:1)
而不是y++
,请尝试y = 24 / x
。只需在x
开始1
,而不是零!
所以:
x++; // do this first, so x isn't zero
y = 24 / x; // get closest y, rounding down
product = x * y; // see if it works
if (product == 24)
...
答案 2 :(得分:1)
你应该在相反的方向上开始x和y。 (即x = 1和y = 24)并使它们彼此靠近,直到达到中位数(即12)。 例如
你要求的更多算法而不是c ++。
答案 3 :(得分:0)
你想要从1循环到那个数字;如果您正在测试的数字,以当前循环索引为模的模数为0,则它是一个因子。
这很容易翻译成代码。这是一个提示:%是模运算符。
如果某个特定步骤让您感到兴奋,请随时在此询问。但是首先尝试翻译上面的内容。