C++ 在C+中调用布尔函数+;
这是我的程序,它的目的是显示输入的整数是否是一个完美的数字。需要使用布尔函数,并在主函数中调用它。但是,在运行试用后,没有输出。任何人都可以帮助这个编程新手…提前感谢任何帮助C++ 在C+中调用布尔函数+;,c++,function,boolean,function-call,perfect-numbers,C++,Function,Boolean,Function Call,Perfect Numbers,这是我的程序,它的目的是显示输入的整数是否是一个完美的数字。需要使用布尔函数,并在主函数中调用它。但是,在运行试用后,没有输出。任何人都可以帮助这个编程新手…提前感谢任何帮助 #include <iostream> using namespace std; bool perfect ( int num ) { int sum = 0, i = 1; while( i < num ) { if ( num % i == 0 ) {
#include <iostream>
using namespace std;
bool perfect ( int num )
{
int sum = 0, i = 1;
while( i < num ) {
if ( num % i == 0 ) {
sum = sum + i;
i++;
}
}
if ( num == sum )
return 1 ;
else
return 0 ;
}
int main()
{
int num ;
cin >> num ;
if ( perfect ( num ) == 1 )
cout << " YES " << endl ;
else
cout << " NO " << endl ;
}
#包括
使用名称空间std;
布尔完美(整数)
{
整数和=0,i=1;
while(i>num;
if(完美(num)==1)
cout让我们看看当num==3
和i==2
时的循环
int i = 1;
while( i < num ) {
if ( num % i == 0 ) {
sum = sum + i;
i++;
}
}
我们可以将其优化为:
bool perfect_number(int x) {
return x == 6 || x == 28 || x == 496 || x == 8128 || x == 33550336;
}
函数perfect(int)
返回布尔值而不是整数,因此if(perfect(num))
可以直接使用。
您可以使用函数perfect()
的返回类型int来使用'if'条件:if(perfect(num)==1)
您应该使用调试器逐步检查代码,并查看代码与预期的不同之处。解决此类问题的正确工具是调试器。在询问堆栈溢出问题之前,您应该逐行检查代码。有关更多帮助,请阅读。至少,您应该[编辑]您的问题将包括一个重现您的问题的示例,以及您在调试器中所做的观察。感谢您的帮助!我现在了解问题所在…我从未想过这个问题。。。
bool perfect_number(int x) {
return x == 6 || x == 28 || x == 496 || x == 8128 || x == 33550336;
}