11.5 上课 求完全数发现的一个用循环来遍历的细节(重要)

发布于 16 天前  24 次阅读


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

void wan(int m, int n) {
	int sum=0;
	for (int i = m; i <= n; i++) {
		for (int j = 1; j < i; j++) {
			if (i % j == 0) {
				sum += j;
			}
		}
		if (sum ==i) {
			printf("%d ",i);
		}
		sum = 0;
	}
}

int main() {
	int m, n;
	scanf("%d %d", &m, &n);
	wan(m, n);
	return 0;
}

上面的代码最重要的是sum=0;

就是在wan这个函数里面的,即清空弹夹,每次遍历m和n之间(包括它俩)的数,最后的操作都是清空sum的值,将之赋值为0

若该范围内没有完全数,则输出字符串No Answer

怎么做?定义变量found并初始化为0

当sum==i并输出时多加一行代码found=1;

最后使用if语句就搞定了

我愿将这个操作称之为 添加标志

届ける言葉を今は育ててる
最后更新于 2024-11-05