一个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;
}