根据我的讲师的说法,如果其除数之和等于自身,那么平衡数就是平衡的。例如:6是一个平衡数,因为1 + 2 + 3 = 6

这些是我的第一本作业,所以我很努力。

#include <iostream>
using namespace std;

int main() {
    int num = 0;
    int sum = 0;
    cout << "Enter a number" << endl;
    cin >> num;
    if (num % (num-1) == 0 ){

    for(int i =1; sum == 0; i++) {
        sum += (num - i);

    }

    if (sum == num) {
        cout << "Great Success" << endl;
        }
    else {
        cout << "Wrong number" << endl;
    }


    }

}

最佳答案

先做数学。通常,代码有点混乱,这只是没有准备好足以编写代码的后果。在知道要编写什么之前,不要开始编写代码。坦白地说,从您的代码中可以看到,这与num-1除以num有关,但是,不清楚如何解决该问题。它的意图使它很难阅读,因此让我们忘记代码并从头开始...

yx的除数。 x % y == 0的最大可能除数是x。要获得所有除数,我们可以简单地检查从x/22的每个数字(x/2始终被视为除数,因此无需检查)。

只有现在我们才能编写一些代码:

int x;
std::cin >> x;
int sum = 1;
for (int y = 2; y <= x/2; ++y){
    if ( check_if_y_is_divisor) { sum += y; }
}
bool is_balanced = sum == x;


我在您必须填写的代码中留下了一个小孔(我只是不想在完成作业时放弃完整的解决方案)。

07-25 23:04
查看更多