一个C语言算法实际的问题,怎么实现
问题描述:
x星球的钞票的面额只有:100元,5元,2元,1元,共4种。
小明去x星旅游,他手里只有2张100元的x星币,太不方便,恰好路过x星银行就去换零钱。
小明有点强迫症,他坚持要求200元换出的零钞中2元的张数刚好是1元的张数的10倍,
剩下的当然都是5元面额的。
银行的工作人员有点为难,你能帮助算出:在满足小明要求的前提下,最少要换给他多少张钞票吗?
(5元,2元,1元面额的必须都有,不能是0)
注意,需要提交的是一个整数,不要填写任何多余的内容。
答
#include<stdio.h>
int main() {
int hundred = 2, five = 0, two = 0, one = 0;
int count;
int min = hundred*100;
for (int j = 1; j <= hundred; j++) { //j为拆开的百元钞
for (int i = 1; i < j * 100; i++) {
if ((j * 100 - i * 21) % 5 == 0 && (j * 100 - i * 21) / 5 > 0) { //保证刚好能得到5元钞且数量为整数且大于0
one = i;
two = 10 * i;
five = (j * 100 - i * 21) / 5;
count = one + two + five;
min = count < min ? count : min;
}
}
}
printf("%d", min);
return 0;
}