源码:
#include<iostream> #include<bits/stdc++.h> using namespace std; int den[7]={
0,1,2,5,10,20,50}; //定义分配数组 int fun(int n,int i); int main() {
int n; int count=0; cout<<"请输入整币金额:"; cin>>n; for(int i=1;i<=6;i++) {
count+=fun(n,i); } cout<<"整币"<<n<<"共有"<<count<<"种找零方式"<<endl; } int fun(int n,int i) {
int sum=0; int res=n-den[i]; if(res<0) {
return 0; } else if(res==0) {
return 1; } else {
for(int j=1;j<=i;j++) {
sum+=fun(res,j); } } return sum; }
讯享网
核心思想:
假设找零的最大面额,并一推到底。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/36833.html