有 4 种卡片 1,6,8,9 ,每种卡片分别有 a,b,c,d 张,要求把这些卡片全部用上组合成一个十进制整数(卡片可以翻转,即 6 和 9 可以互换),使其被 7 整除。若有多种组合方式,输出任意一种即可,无解则输出 −1 。输入数据 第一行包括四个正整数 a,b,c,d (1≤a,b,c,d≤20000) ,分别代表 1,6,8,9 卡片的个数。输出数据 输出一个数字——组合的结果。请用c语言代码实现
时间: 2023-11-27 16:04:45 浏览: 31
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
int sum = 0; // 记录卡片总和
sum += a + 6 * b + 8 * c + 9 * d; // 计算卡片总和
if (sum % 7 != 0) { // 如果卡片总和不能被 7 整除
// 先判断是否存在 6 和 9 卡片
if (b > 0 && d > 0) {
// 把一个 6 卡片当做 9 使用
sum += 3;
b--;
d--;
if (sum % 7 == 0) {
printf("%d\n", sum);
return 0;
}
// 把一个 9 卡片当做 6 使用
sum += 6;
d--;
b--;
if (sum % 7 == 0) {
printf("%d\n", sum);
return 0;
}
}
// 不存在 6 和 9 卡片,或者使用了 6 和 9 卡片后仍然无法被 7 整除
// 尝试使用其他卡片,从大到小依次尝试
for (int i = 8; i >= 1; i--) {
for (int j = 0; j < a; j++) {
if (sum - i >= 0 && (sum - i) % 7 == 0) {
printf("%d\n", sum - i);
return 0;
}
sum--;
}
for (int j = 0; j < b; j++) {
if (sum - 6 * i >= 0 && (sum - 6 * i) % 7 == 0) {
printf("%d\n", sum - 6 * i);
return 0;
}
sum -= 6;
}
for (int j = 0; j < c; j++) {
if (sum - 8 * i >= 0 && (sum - 8 * i) % 7 == 0) {
printf("%d\n", sum - 8 * i);
return 0;
}
sum -= 8;
}
for (int j = 0; j < d; j++) {
if (sum - 9 * i >= 0 && (sum - 9 * i) % 7 == 0) {
printf("%d\n", sum - 9 * i);
return 0;
}
sum -= 9;
}
}
printf("-1\n"); // 无解
} else {
printf("%d\n", sum); // 卡片总和已经被 7 整除
}
return 0;
}
```
该代码先计算出卡片总和,判断是否能被 7 整除。如果不能被 7 整除,则先尝试使用 6 和 9 卡片,如果还是无法被 7 整除,则从大到小依次尝试其他卡片。如果所有卡片都用完了还是无法被 7 整除,则输出 -1。如果卡片总和已经被 7 整除,则直接输出。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)