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

小P的故事——神奇的换零钱

时间:2015-08-11 18:58:02      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:数据结构   背包问题   c语言   

题目描述

已知A国经济很落后,他们只有1、2、3元三种面值的硬币,有一天小P要去A国旅行,想换一些零钱,小P很想知道将钱N兑换成硬币有很多种兑法,但是可惜的是他的数学竟然是体育老师教的,所以他不会啊、、、他只好求助于你,你可以帮他解决吗?

提示:输入数据大于32000组。

输入

 每行只有一个正整数N,N小于32768。

输出

 对应每个输入,输出兑换方法数。

示例输入

100 
1500

示例输出

884 
188251

///题目中出现的32768的意义是2的15次方,是long(int )型变量的取值范围

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define N 1000001
int dp[N];
int main()
{
  int n,i,j;
  int a[4]={1,2,3};
  for(i=0;i<=32768;i++)
  {
    dp[i]=0;
  }
  dp[0]=1;
  for(i=0;i<=2;i++)
  {
    for(j=0;j<=32768;j++)
    {
      dp[j]=dp[j]+dp[j-a[i]];
    }
  }
  while(~scanf("%d",&n))
  {
    printf("%d\n",dp[n]);
  }
  return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

小P的故事——神奇的换零钱

标签:数据结构   背包问题   c语言   

原文地址:http://blog.csdn.net/sh_tomorrow/article/details/47421741

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