#include <stdio.h>
void findChange(int amount, int coins[], int n) {
int i = n - 1; // 从面值最大的硬币开始
while(amount > 0 && i >= 0) {
int count = amount / coins[i]; // 使用面值最大的硬币的个数
if(count > 0) {
printf("%d张%d面值的硬币\n", count, coins[i]);
amount -= count * coins[i]; // 更新找零金额
}
i--; // 递减面值,继续找零
}
if(amount > 0) {
printf("无法找零\n");
}
}
int main() {
int coins[] = { 1, 2, 5, 10, 20, 50, 100 }; // 硬币的面值数组
int n = sizeof(coins) / sizeof(coins[0]); // 硬币的个数
int amount;
printf("请输入要找零的金额:");
scanf("%d", &amount);
printf("找零方案如下:\n");
findChange(amount, coins, n);
return 0;
}