币值为1、3、5.总额可自设。
空间复杂度O(n),时间复杂度O(n*n)。n为总额。均为近似。
#include <iostream>
using namespace std;
int number(int totalNumber)
{
bool flag[totalNumber+1]={false};
flag[0]=true;
int i=1;
for(i;i<=totalNumber;i++)
{
for(int j=totalNumber-1;j>=0;j--)
{
if(flag[j])
{
if(j+5==totalNumber||j+3==totalNumber||j+1==totalNumber)
{
return i;
}
if(j+5<totalNumber)
{
flag[j+5]=true;
}
if(j+3<totalNumber)
{
flag[j+3]=true;
}
if(j+1<totalNumber)
{
flag[j+1]=true;
}
}
}
}
}
int main()
{
int toalNumber=9;
cout<<number(toalNumber);
return 0;
}