码迷,mamicode.com
首页 > 其他好文 > 详细

Cracking the Coding Interview 8.7

时间:2014-08-21 12:56:04      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   ar   art   问题   

Given a infinite number of quarters(25cents), dimens(10cents), nickels(5cents) and pennies(1cent), write code to calculate the number of ways of representing n cents.

思路:

buf[] = {1,5,10,25}

为了组成n,用到几个25呢?最多n/25个。

如果用1个25,那么问题就变成了用{1,5,10}组成n-25

如果用2个25,那么问题就变成了用{1,5,10}组成n-25*2

如果不用25,那么问题就变成了用{1,5,10}组成n

最多用n/25个25,最少用0个,依次递归下去,直到n变成0,或者只用{1}来组成结果

#include<stdio.h>

int func(int n,int idx,int *buf)
{
    if(n==0 || idx==0)
    {
        return 1;
    }
    int m=n/buf[idx];
    int r = 0;
    for(int i=0;i<=m;i++)
    {
        r+=func(n-i*buf[idx],idx-1,buf);
    }
    return r;
}

int main()
{
    int buf[]={1,5,10,25};
    
    printf("%d\n",func(51,3,buf));
    return 0;
}

 

Cracking the Coding Interview 8.7,布布扣,bubuko.com

Cracking the Coding Interview 8.7

标签:style   blog   color   io   for   ar   art   问题   

原文地址:http://www.cnblogs.com/johnsblog/p/3926753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!