这个题的代码怎么写呀?

题目描述:

小C不喜欢带钱,有一次竟被他碰上了一家不能使用移动支付(也不能找钱)的神秘商店。请问小C至少准备多少张RMB才能恰好支付n元。RMB的面额有100元,50元,20元,10元,5元,1元。

输入格式:

输入一个整数n

输出格式:

最少带几张。

样例输入1:

50

样例输出1:

1

约定:

1<=n<=100

#include <iostream>

using namespace std;

int solve(int tar, int * meta, int metan, int * seed = NULL, int seedn = 0)
{
    if (tar == 0)
    {
        //for (int i = 0; i < seedn; i++) cout << seed[i] << " ";
        //cout << endl;
        return seedn;
    }
    int min = -1;
    int m;
    int * seed1 = new int[seedn + 1];
    if (seed)
        memcpy(seed1, seed, sizeof(int) * seedn);
    for (int i = 0; i < metan; i++)
    {
        if (meta[i] <= tar)
        {
            seed1[seedn] = meta[i];
            m = solve(tar - meta[i], meta, metan, seed1, seedn + 1);
            if (m != -1 && (min == -1 || min > m))
                min = m;
            break;
        }
    }
    delete[] seed1;
    return min;
}

int main()
{
    int arr[] = { 100, 50, 20, 10, 5, 1 };
    int n = 6;
    int total;
    cin >> total;
    int result = solve(total, arr, n);
    cout << result << endl;
    return 0;
}

问题解决的话,请点下采纳

****这道题你可以去写判定,比如说115元,****
115/100=1
总数就+1,
接着115-100=15
15/50=0
总数+0
15-0=15
15/20=0
总数+0
15-0=15
15/10=1
总数+1
15-10=5
5/5=1
总数+1
0/1=0
总数+0
输出总数
return 0;
思路大概是这样,加油哦~

这个才是最简单的做法

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin>>n;
    printf("%d",n/100+n%100/50+n%100%50/20+n%100%50%20/10+n%100%50%20%10/5+n%100%50%20%10%5/1);
    return 0;
}