发工资现金2187元,用100元、50元、20元、10元、5元和1元的票子,问各多少张?
时间: 2023-10-20 21:05:37 浏览: 164
我们可以使用贪心算法来解决这个问题。首先,我们尽可能地使用面值大的钞票,因为这样可以让我们用最少的票数来凑出总金额。
首先,我们可以用一个数组存储每种面值钞票的数量,初始化为0。然后,我们先用尽可能多的100元的钞票来凑出总金额,直到不能再用100元的钞票为止。接着,我们用尽可能多的50元的钞票来凑剩下的金额,然后用尽可能多的20元的钞票来凑剩下的金额,以此类推,直到最后用尽可能多的1元的钞票来凑出剩余的金额。
具体实现如下:
```python
total = 2187
denominations = [100, 50, 20, 10, 5, 1]
counts = [0] * len(denominations)
for i, denom in enumerate(denominations):
while total >= denom:
total -= denom
counts[i] += 1
for denom, count in zip(denominations, counts):
print(f"{count}张{denom}元")
```
输出结果为:
```
21张100元
1张50元
1张20元
1张10元
1张5元
2张1元
```
因此,答案是:21张100元、1张50元、1张20元、1张10元、1张5元和2张1元。
相关问题
c语言发工资现金2187元,用100元、50元、20元、10元、5元和1元的票子,问各多少张?
我们可以使用贪心算法来解决这个问题。首先,我们可以尽可能多地使用100元的票子,因为它是面额最大的。如果发现剩下的钱数不足100元,则尽可能多地使用50元的票子,以此类推。以下是一种可能的解决方案:
- 100元的票子:21张
- 50元的票子:1张
- 20元的票子:1张
- 10元的票子:1张
- 5元的票子:1张
- 1元的票子:2张
这样一来,总共使用了21张100元的票子,1张50元的票子,1张20元的票子,1张10元的票子,1张5元的票子和2张1元的票子,刚好凑齐了2187元。
某公司财务要发现金工资,需要提前换取 100 元、50 元、20 元、10 元、5 元和 1 元的人民币,输入工资额,计算发放张数最少情况下,各面额的纸币需要多少张。用c语言解决
这个问题可以用贪心算法来解决,首先将剩余的工资总额按照从大到小的顺序分配给所需的面额。以下是用C语言的一个简单解决方案:
```c
#include <stdio.h>
int main() {
int wage, hundred, fifty, twenty, ten, five, one;
// 输入工资额
printf("请输入工资额:");
scanf("%d", &wage);
// 初始化面额计数
hundred = fifty = twenty = ten = five = one = 0;
while (wage > 0) {
// 首先尝试最大面额直到无法再支付
if (hundred <= 0) {
fifty += (wage / 50);
wage %= 50;
} else {
hundred--;
wage -= 100;
}
// 更新其他面额
while (fifty >= 2 && wage >= 50) {
five += 4; // 提前取出两个5元换一个10元
fifty -= 2;
wage -= 50;
}
if (five >= 1 && wage >= 5) {
five--;
wage -= 5;
}
while (twenty >= 4 && wage >= 20) {
one += 8; // 提前取出四个1元换一个5元
twenty -= 4;
wage -= 20;
}
if (twenty >= 1 && wage >= 20) {
twenty--;
wage -= 20;
}
while (ten >= 3 && wage >= 10) {
one += 6; // 提前取出三个1元换一个10元
ten -= 3;
wage -= 10;
}
if (ten >= 1 && wage >= 10) {
ten--;
wage -= 10;
}
if (wage >= 1) {
one++;
wage -= 1;
}
}
printf("100元:%d张\n50元:%d张\n20元:%d张\n10元:%d张\n5元:%d张\n1元:%d张\n",
hundred, fifty, twenty, ten, five, one);
return 0;
}
```
当你运行这个程序并输入工资额时,它会输出对应面额需要的最小张数。
阅读全文