| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1141 人关注过本帖
标题:母函数请高手帮忙解释下程序。。
取消只看楼主 加入收藏
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
母函数请高手帮忙解释下程序。。
题目描述

Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We want to make changes with these coins for a given amount of money.

For example, if we have 11 cents, then we can make changes with one 10-cent coin and one 1-cent coin, or two 5-cent coins and one 1-cent coin, or one 5-cent coin and six 1-cent coins, or eleven 1-cent coins. So there are four ways of making changes for 11 cents with the above coins. Note that we count that there is one way of making change for zero cent.

Write a program to find the total number of different ways of making changes for any amount of money in cents. Your program should be able to handle up to 100 coins.

输入

The input file contains any number of lines, each one consisting of a number ( ≤250 ) for the amount of money in cents.


输出

For each input line, output a line containing the number of different ways of making changes with the above 5 types of coins.

样例输入


11
26

样例输出


4
13

下面是程序:
#include<iostream>
using namespace std;
int main()
{
    int i,j,k,t;
    int nums[251]={0},coins[5]={1,5,10,25,50};
    int ans[251][101]={0},ansTemp[251][101]={0};
    //…[i][j]表示i分钱由j个硬币组成的方案数
    ans[0][0] = 1;

    for(i=1;i<=5;i++)
    {
        for(j=0;j<=250;j++)//这个循环的作用?
            for(k=0;k*coins[i-1]+j<=250;k++)//这里什么意思?。。
                for(t=0;t+k<101;t++)//总的硬币数要少于100//这个也不明白
                    ansTemp[k*coins[i-1]+j][t+k] += ans[j][t];
        for(j=0;j<=250;j++)
            for(t=0;t<101;t++)
            {
                ans[j][t] = ansTemp[j][t];
                ansTemp[j][t]=0;
            }
    }

    for(i=1;i<=250;i++)
        for(j=1;j<=100;j++)
            nums[i] += ans[i][j];
    nums[0] = 1;
    while(cin>>i)
        cout<<nums[i]<<endl;
    return 0;
}
主要说明一下循环的意思循环思想越详细越好。。。。很看不明白。。。。。谢谢。。
搜索更多相关主题的帖子: 母函数 解释 
2009-08-07 01:22
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
题目大意是有1分的5分的10分的25分的50分的钱,现在给你钱数N<=250分,问你有多少中不同的换发。。最主要的一点是兑换的总钱币数目不应超过100个,也就是说110分是不能换成103个一分的。。。
2009-08-07 01:26
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
关于这题谁来看下?.!!>>>.
2009-08-07 01:58
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
要一直刷新到有人来看。。。
2009-08-07 02:02
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
谁能再注释下我的程序谢谢了。。。。
2009-08-07 11:42
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
...............
2009-08-07 13:06
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
没被无视。我是再看。。不过没怎么明白。。。
for (k = 0; j * coins[i] + k <= 250; ++k)
     for (l = 0; j + l <= 100; ++l)
想知道这是构造了一个怎样的母函数来解的。。。这两个FOR 也注释一下。。。前天刚开始学的不太明白,,,
2009-08-07 13:46
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
没人了?。。。
2009-08-07 15:11
谁是王者
Rank: 2
等 级:论坛游民
帖 子:211
专家分:92
注 册:2009-3-3
收藏
得分:0 
2009-08-08 09:42
快速回复:母函数请高手帮忙解释下程序。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013758 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved