提交记录 #62
提交时间:2024-10-29 22:31:06
语言:c
状态:Unaccepted
编译情况:编译成功
固定测试点#1:
额外测试点#4:
M32【期中测验3】商场抽奖
#include <stdio.h>
void find_prizes(int prices[5], int total_value, int total_count, int current_count[5], int index) {
// 计算当前奖品组合的总价值和总件数
int current_total_value = 0;
int current_total_count = 0;
for (int i = 0; i < 5; i++) {
current_total_value += current_count[i] * prices[i];
current_total_count += current_count[i];
}
// 检查是否满足条件
if (current_total_count == total_count && current_total_value == total_value) {
printf("%d,%d,%d,%d,%d\n", current_count[0], current_count[1], current_count[2], current_count[3], current_count[4]);
return;
}
// 如果已经选择了所有奖品,返回
if (index >= 5) {
return;
}
// 尝试选择当前奖品的数量
for (int i = 0; i <= total_count; i++) {
current_count[index] = i; // 选择当前奖品的数量
find_prizes(prices, total_value, total_count, current_count, index + 1); // 递归选择下一个奖品
}
}
int main() {
int prices[5];
int total_value, total_count;
int current_count[5] = {0}; // 初始化当前奖品数量数组
// 输入奖品价格
for (int i = 0; i < 5; i++) {
scanf("%d", &prices[i]);
}
// 输入总价值和总件数
scanf("%d %d", &total_value, &total_count);
// 查找符合条件的奖品组合
find_prizes(prices, total_value, total_count, current_count, 0);
return 0;
}