0904每日一练

tech2026-08-10  1

每日一练

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6 = 1 + 2 + 3。找出1000以内的所有完数? 拆解问题: 1、要知道一个数的因子都有哪些 2、因子求和 3、和与原数比较 是否相等

解决问题: 1、取余、循环 2、循环中拿出因子叠加 3、把加完的和与原数 判断

遇到的问题: 在双层循环中各种输出逻辑,拿到输出值之后思考为什么会这么输出,为什么没有得到想要的值,反复琢磨实现逻辑

代码:

#include<iostream> using namespace std; void get_number() { for (int num = 2; num <= 1000; num++) { int sum = 0; for (int i = 1; i <= (num / 2); i++) { if (num % i == 0) { //cout << i <<" "; sum += i; //cout << sum << endl; } } if (sum == num) { cout << sum << endl; //"(完数)==================================" << endl; } } } int main() { cout << "1000以内的完数有:" << endl; get_number(); system("pause"); return 0; }

OK,这就是今天的每日一练啦,前几日的每日一练有点忙,太瓜皮了,没咋做好,就暂时没有分享。下次一定!!!

最新回复(0)