回 帖 发 新 帖 刷新版面

主题:请教一元钱换零钱问题的优化算法

将一元钱换成1分、2分、5分、1角、2角、5角的零钱若干,一共有多少种算法?

我最初写的算法要用到6层循环,但是这个应该是可以优化的
据说最终可以优化成一个公式
不知要怎么优化呢?
哪位可以给个具体点的思路
多谢各位咯!

我的代码如下:

#include <iostream.h>

void main()
{
int total=0;
for(int i=0;i<=100;i++)
for(int j=0;j<=50;j++)
for(int k=0;k<=20;k++)
for(int l=0;l<=10;l++)
for(int m=0;m<=5;m++)
for(int n=0;n<=2;n++)
if(i+2*j+5*k+10*l+20*m+50*n==100)
{
cout<<i<<" "<<j<<"  "<<k<<" "<<l<<" "<<m<<" "<<n<<" "<<"*";
total++;
}
cout<<total;
cin.get();
}

回复列表 (共1个回复)

沙发

已在c区给你简单做答

我来回复

您尚未登录,请登录后再回复。点此登录或注册