在 c++ 中,在 for 循环中,你如何打印出一次字符串



我正在处理的是一个嵌套的 for 循环,可以找到完美的数字。找到完美数字的迭代很快就发生了。但是,我需要输出显示一个字符串,上面写着"找到完美数字",并让这种情况发生一次。然后在同一行上,打印出所有完美的数字。例如,假设我有两个输入,1 到 30。

这意味着完美的数字是 6 和 28。输出应如下所示。

完美数字:6 28。

感到困惑的是如何在我创建的 for 循环中打印出一次该字符串。这是我到目前为止所拥有的。

#include <iostream>
int main()
{
    int a, b;
    std::cin >> a >> b;
    int count = 0;
    for (int i = a; i <= b; i++)
    {
        int sum = 0;
        for (int j = 1; j <= i; j++)
        {
            if (i % j == 0)
            {
                sum += j;
            }
        }
        if (i * 2 == sum)
        {
            std::cout << i << " ";
            count++;
        }
    }
    std::cout << "n";
    std::cout << "number of perfect numbers found: " << count << std::endl;
    return 0;
}

为什么要"在 for 循环中"这样做?在进入 for 循环之前执行此操作。

或者,如果您想确保在提交打印该字符串之前至少找到一个完美数字,请在打印出各个值的行上,而不是:

std::cout << i << " ";

就说:

std::cout << (count == 0 ? "Perfect numbers: " : "") << i << " ";
您可以

尝试这样的事情,只需添加带有 cout 的打印即可

for(i=start; i<=end; i++)
    {
        sum = 0;
        /* Check whether the current number i is Perfect number or not */
        for(j=1; j<i; j++)
        {
            if(i % j == 0)
            {
                sum += j;
            }
        }
        /* If the current number i is Perfect number */
        if(sum == i)
        {
            cout <<i<<" ,";
        }
    }

最新更新