我正在处理的是一个嵌套的 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<<" ,";
}
}