撇开效率不谈,用5个for循环看看:
#include <iostream>
#include <iomanip>
using namespace std;
void compute(int value);
int main()
{
int value;
cout<<"input the value:";
cin>>value;
compute(value);
return 0;
}
void compute(int value)
{
int m1,m2,m3,m4,m5; //m1,m2,m3,m4,m5为最大可能取值
int i,j,k,m,n;
int tmp=0,count=0;
m1=value/50;
m2=value/25;
m3=value/10;
m4=value/5;
m5=value/1;
cout<<" 50 25 10 5 1"<<endl;
cout<<"------------------------------------------------"<<endl;
for (i=0;i<=m1;i++)
for (j=0;j<=m2;j++)
for (k=0;k<=m3;k++)
for (m=0;m<=m4;m++)
for (n=0;n<=m5;n++)
{
tmp=50*i+25*j+10*k+5*m+1*n;
#include <iostream>
using namespace std;
int main()
{
int num;
int na = 0;
int nb = 0;
int nc = 0;
int nd = 0;
int ne = 0;
int tmp = 0;
cout << "input the number :";
cin >>num;
while (nb <= num/5)
{
while (na <= num/1)
{
tmp = na*1+nb*5;
if (tmp == num)
{
cout << na<<endl;
na = 0;
break;