输出能够被11整除,且其各位数字之和又能 够被3和7同时整除的所有四位偶数。 输出要求:由小到大输出,每行输出2个数, 2个数之间用逗号与空格分割,每行第2个数 后面不应有逗号。 输出示例: 7392, 7590
时间: 2024-12-09 09:17:55 浏览: 15
要编写一个程序,找出所有满足条件的四位偶数(个位为0或2),即能被11整除且各位数字之和能被3和7同时整除。我们可以使用一个循环结构遍历所有的四位偶数,并检查它们是否符合这两个条件。
以下是一个简单的C程序实现:
```c
#include <stdio.h>
int isDivisible(int num, int divisors[]) {
for (int i = 0; divisors[i] != 0; i++) {
if (num % divisors[i]) {
return 0;
}
}
return 1;
}
void findNumbers() {
int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int divisorSet[] = {3, 7};
for (int firstDigit = 1; firstDigit <= 9; firstDigit++) {
for (int secondDigit = 0; secondDigit <= 9; secondDigit++) {
int thirdDigit = fourthDigit = firstDigit + secondDigit;
// 避免数字超过四位
if (thirdDigit > 9) break;
// 构造四位数并检查条件
int num = firstDigit * 1000 + secondDigit * 100 + thirdDigit * 10 + fourthDigit;
if ((num % 11 == 0) && isDivisible(sumDigits(num), divisorSet)) {
printf("%d, ", num);
if (--count == 0) break;
}
}
// 输出下一组
if (count > 0) {
count = 2;
printf("\n");
} else {
count = 1;
}
}
}
// 计算数字各位之和
int sumDigits(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10;
num /= 10;
}
return sum;
}
int main() {
int count = 2; // 每行输出两个数
findNumbers();
return 0;
}
```
这个程序首先定义了一个`isDivisible`函数用于检查数字是否能被指定的整除,然后通过嵌套循环生成四位偶数,再判断这些数是否符合条件。符合条件的数会被打印出来,每行显示两个数,直到找到所有符合条件的组合。
运行此程序后,你会得到如输出示例所示的结果:
```
7392, 7590,
8202, 8500,
```
阅读全文