问题:
顾客在超市购买物品一共消费 x 元【任意输入 x 的值,x 的值在 1 到 100 之间,并且是整数】。支付的纸币为 100 元,计算超市收银员应找回顾客多少钱?【告知前提所有的纸币数量充足下,纸币包含面额是 100 元、50 元、20 元、5 元、1 元】
思路:
1.我们需要计算需要找回的金额,即 100 减去顾客消费的金额 x。
2.我们按照纸币的面额从大到小进行计算,优先使用大面额的纸币。我们计算当前面额纸 币 的 数量,并更新剩余需要找零的金额,直到找零的金额为 0 为止。
3.输出各面额纸币的数量,即为超市收银员应该找回给顾客的纸币数量。
代码:
#include<iostream>
using namespace std;
int main() {
int x;
cin >> x;
int change = 100 - x;
int arr1[] = { 100, 50, 20, 5, 1 };
int arr2[5] = { 0 }; // 修正数组大小
for (int i = 0; i < 5; i++) {
arr2[i] = change / arr1[i];
change %= arr1[i]; // 修正赋值运算符
}
for (int i = 0; i < 5; i++) {
cout << arr2[i] << "张" << arr1[i] << "纸币" << endl;
}
return 0;
}